stm8升级完跳转不成功!!!

2019-07-19 20:18发布

STM8芯片。实现在线升级功能,写了BOOT和APP两套程序。
正常上电时,boot可以正常跳转到APP;
APP里需要升级时,也可以正常跳转到boot;
但是在boot里升级完程序后,执行重启函数:
       asm("LDW X,  SP ");
        asm("LD  A,  $FF");
        asm("LD  XL, A  ");
        asm("LDW SP, X  ");
        asm("JPF $E000");

仿真时也看到程序从boot跳转到APP了,但是APP此时却死掉了(表象是没有跑起来);
非要等到手动上电复位后,APP才能正常运行。

APP既然能正常运行,说明flash擦写应该没有问题,但不明白怎么在不断电的情况下APP咋就跑不起来呢??

而且这种情况通常出现在用小程序去更新原来的大程序的时候,要是两个程序量差不多,反而可以正常跳转。
小程序和大程序的区别是,大程序功能比较多,有硬件各种引脚的配置及操作,小程序只开了串口功能和flash处理功能。

现象太诡异了!请大神指导一下问题究竟出在哪里。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。