__asm void disableAllInt(void) { CPSID I BX LR } __asm void enableAllInt(void) { CPSIE I BX LR }
__asm void MSR_MSP(uint32_t addr) { MSR MSP, r0 //set Main Stack value BX r14 } void iap_boot_loader(unsigned int addr) { if(((*(volatile uint32_t *)addr) & 0x2ff00000) == 0x20000000) { disableINT(); disableAllInt(); jump2app = (iapfun)*(volatile uint32_t *)(addr + 4); MSR_MSP(*(volatile uint32_t *)addr); jump2app(); } }
在别人代码中看到,觉得需要记录一下。