stm32 IAP升级时程序卡在Default_Handler PROC
用正点原子的BootLoader升级RTC文件,是成功的,当我试着从app程序RTC重新跳转到BootLoader程序时,程序卡死在BootLoader的Default_Handler PROC中,原因是跳转到BootLoader后,usmart_dev.init(SystemCoreClock/1000000);和 RTC_Init(); 这两个函数相关的中断开着,但是BootLoader中并没有这两个函数对应的中断子函数,因此会进入这个错误。注释掉或关掉中断就行。
同时,注意中断向量表的重定位,只有PC指针运行了SCB->VTOR = FLASH_BASE | 0x10000; 这句程序之后后,中断发生时,cpu才会跑到FLASH_BASE | 0x10000地址处寻找中断向量。刚复位时默认SCB->VTOR = 0;中断发生时,CPU只从0x080000处找中断向量。也就是说SCB->VTOR 的值设为多少,中断发生时,cpu就从该值的地址处找中断向量。
stm32 IAP升级时程序跳转时卡在Default_Handler PROC
最新推荐文章于 2024-05-14 21:36:07 发布