有一次在调试的时候,发现程序一直卡在汇编程序中
........
SPI4_IRQHandler
SPI5_IRQHandler
SPI6_IRQHandler
SAI1_IRQHandler
DMA2D_IRQHandler
B .
ENDP
B .的意思相当于51单片机中常用的 SJMP $ 即原地死循环。
一开始以为是误打开了DMA相关的中断,后来仔细查看了卡住部分的上下文,发现程序进入了Default_Handler即默认的中断服务函数。如果打开了某个中断,而没有给这个中断编写中断服务程序,中断被触发的时候程序都会进入这个Default_Handler而死循环。
几个月前就想要把这个问题写下来了,今天终于写下来了,希望能对到遇到同样问题的网友有帮助吧!