NVIC Group你设置的是不是一样的?
我觉得和nvic group设置没有关系吧,设置nvic group只是设置了中断响应的优先级。而各中断的地址是固定的。 本以为一切都弄好了,结果又遇到了问题。
BOOT程序里原有独立看门狗,我调试时给关掉了,现在又打开了。然后在APP程序里喂狗。
一开始都是接着CAN设备,和其它设备通讯,正常。
偶然一次发现,上电时如果不接其它CAN设备,则看门狗复位了。
逐条屏蔽语句,发现是APP函数里while(1)前的打开CAN中断接收这一语句引起的,屏蔽掉就可以了。
但是,如果不用IAP工程,APP程序直接正常执行,从0X80000000执行。则不屏蔽这句,也不会引起看门狗复位。APP程序里重新打开了独立看门狗。
总结下来就是,如果上电时,使能CAN中断接收后,如果有CAN接收中断产生,则程序能正常运行下去,否则不知卡在那里引起了独立看门狗复位。 解决了,原因是boot里出了开启了can接收中断外,还开起了can_sce中断。我在跳转到app前,只是关闭了can的接收中断,没关闭sce中断。
到了app程序后,一旦开启了can,则立刻产生了sce中断(也不知道为何会产生),然后就跳转到了某个位置,程序跑飞。
在app程序里也使能can_sce中断并添加中断处理函数,问题解决。或者在boot里,跳转app前,也关闭can_sce中断。
我就配合boot程序写个app程序,为何会遇到这么多问题啊...
页:
1
[2]