我已经测试STM32F072从BootLoader跳转到App是跳转成功了,当我在跳转到App前加上__disable_irq(),App的程序除了不能进中断,其他的都正常。当我在App里面加__enable_irq()时App就又不正常了(跑飞了)。
跳转代码如下:
typedef void (*pFunction)(void);
pFunction Jump_To_Application;
uint32_t JumpAddress;
if( ((*(__IO uint32_t*)APP_START_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
{
__disable_irq();
//跳转至用户代码
JumpAddress = *(__IO uint32_t*) (Address + 4);
Jump_To_Application = (pFunction) JumpAddress;
//初始化用户程序的堆栈指针
__set_MSP(*(__IO uint32_t*) Address);
Jump_To_Application();
}
希望有朋友遇到过这个问题,帮忙解答一下,谢谢! |