msp430复位方式有多种,这些复位方式的结果不一样。
平台430f5659,我在其上做一个boot程序与应用程序跳转的实验,boot程序使用430的物理中断,应用程序另开辟中断向量表,应用程序的起始点为0x8000,即flash的起始点。
在应用程序中使用asm("mov &0xFFFE, PC");汇编指令产生系统复位从而跳转到boot程序,在boot中擦除flash然后用串口重新下载应用程序。
这时问题来了,从应用程序跳转到boot后,擦除flash时只能擦一个segment,后面程序就跑飞了。
如果我在应用程序中采用掉电复位的方式,则进入boot后擦除flash就没有这个问题。
我怀疑两种复位方式的不同导致结果的差别,具体原因我想不明白。
请大家看看这个怎么解决?