额,这么多人谢谢,不好意思不上个代码了:
汇编版:
#define BootLoaderAddress 0x1ffff800 ;//根据IspBootLoader地址不同,需修改此处地址
MOVW R1,#BootLoaderAddress
MOVT R1,#BootLoaderAddress >>16;
LDR R0,[R1,#0];
MSR MSP,R0;
MSR PSP,R0;
MOVW R1,#(BootLoaderAddress+4);//
MOVT R1,#(BootLoaderAddress+4)>>16;
LDR R0,[R1,#0];
BX R0;
C版待补
注:
1、本人未实际干过这事,以上代码敬请验证后使用
2、预先反初始化一下各种外设,特别是DMA,会更理想。调用库函数的DeInit(); |