最近在使用STM32调试IAP升级时,发现升级到第二时程序死机。目前程序是分了三块程序区:BootLoader、APP1和APP2。在测试时发现如果APP1升级后跳转到APP2是正常的,但是APP2升级后再跳回APP1,程序就死机了。后来仿真发现APP1在升级到APP2时, JumpAddress地址还在APP1的地址区间,重新升级到APP1后,因为擦除的原因,JumpAddress跳转的地址数据被擦除,导致程序死机。一直想不明白为什么JumpAddress指向的复位地址还保留在APP1中,求大神指教。以下是程序跳转的代码 程序标志位在APP1时的跳转 程序标志位在APP2时的跳转 update_flag=2时,JumpAddress指向复位地址还是APP1的区间的0x08003139位置,导致升级回APP1时,程序死机 |
2、其次,验证一下update_flag数值对不对。
3、升级APP1后跳转过去会有跳转会有问题,重启板子能不能运行APP1呢?确认一下是不是跳转有问题
评分
查看全部评分
评分
查看全部评分