现在使用STM32F2系列的芯片,编译出来的文件开头的前四个byte是0x2002 0000 ,使得在DFU程序中跳转无法跳到应用程序
源码
if (((*(__IO uint32_t*)APP_DEFAULT_ADD) & 0x2FFE0000 ) == 0x20000000)
{ /* Jump to user application */
JumpAddress = *(__IO uint32_t*) (APP_DEFAULT_ADD + 4);
Jump_To_Application = (pFunction) JumpAddress;
/* Initialize user application's Stack Pointer */
__set_MSP(*(__IO uint32_t*) APP_DEFAULT_ADD);
Jump_To_Application();
}
以前做STM32F1系列的芯片也做过相应的程序,查看以前的程序bin文件,以前的程序编译出来的是0x2001 0000,符合以上程序,可以正常跳转。
现在用STM32F2使用的是相同的编译器相同的环境,也是GCC,但是出来却有一那么一点不同,求指教,应用程序是可以运行的。 |