开发工具IAR7.2,平台MSP430F2272,自己写的boot和app中同时有接收、发送中断函数体,在boot中加了全局共享变量作为判断是否跳转进入app,调试时发现代码写入正确,在APP的发送接收中断发生后就反复重启?轻微哪位大神有例程,十分感谢?
灰小子:
估计每次都跳入boot的中断服务程序了
若龙在渊:
回复 灰小子:
请问怎么解决,boot和app没有共用中断的就运行正常。我做了一个boot区中断只加跳转语句的程序,然后在app区使用中断,就运行正常。因为我想即在boot区使用同一个中断接收数据,又想在app区使用这个中断接收数据
Jacky Xu:
回复 若龙在渊:
不正常是肯定的,正常才怪了呀。
中断子程序的入口地址是被编译到中断向量入口地址上的,当中断来了后,PC会自动去中断向量处取出中断子程序的入口地址。然后PC就跳去执行这个中断子程序。无论你是BOOT中还是APP中,都是这个逻辑。
所以意味着你没有办法让MCU自动知道你什么时候是跳到这个中断子程序什么时候是跳到那个中断子程序。没有这种用法和功能。
你可以好好去看看我们的bootload手册,特别是对于G2那些相关的,看我们提供的bootload代码是怎么写的。先理解清楚他的基本原理才行。
简单来说所有这类客户自己做的要 放在flash中的bootloader都需要做中断向量迁移。最好再boot中不要使用中断。