可以参考我的IAP做法,用特殊的串口序列进入IAP.
应用程序检测到这个序列,复位. 而我的IAP Boot程序复位会检测这个序列,判断是否开始IAP,还是进入应用程序.
Jump App的代码,我用的嵌入汇编,共享出来: asm("MOVW R1,#0x2000");//根据vector_table不同,需修改此处地址 asm("MOVT R1,#0x0800"); asm("LDR R0,[R1,#0]"); asm("MSR MSP,R0"); asm("MSR PSP,R0"); asm("MOVW R1,#0x2004");//根据vector_table不同,需修改此处地址 asm("MOVT R1,#0x0800"); asm("LDR R0,[R1,#0]"); asm("BX R0");
楼主可先试用一下我的Free STM32 IAP看看.
__McuIsp
|
|