菜鸟求助。
Keil ARM LPC2294 wihle主循环中存在调用函数时(如 DELAY函数),进入几次(如,2次)中断后(如CAN中断),就运行错误,程序直接跑飞,停在Startup.s文件中的PAbt_Addr DCD PAbt_Handler,死循环。
若是将while主循环中的调用函数全部清除,空循环,则程序能够响应中断,且可任意多次响应,程序正常运行。
网络上查看消息说是堆栈问题,目前,Starup.s堆栈空间已经修改到足够大,依然存在此问题,求大侠指点。
------解决思路----------------------
盲目加大不是解决办法,要找到是哪里溢出, 中断里面设断点, 把stack窗口打开,每次触发断点就看下stack是不是正常(突然增大很多或者突然变成了一个不合适的数字),然后继续单步挨个找看是执行完哪一步出现,有时堆栈是慢慢溢出的,所以继续的话还能重复观察到
看你说的最有可能就是你的延时那里出问题, 把你延时代码贴出来看看
------解决思路----------------------
lz似乎应该检查中断函数里都干了些什么,是否修改了sp?