最近在ADS中调试ARM裸机中断,遇到了一个很大的问题-无法进入中断服务程序。
在调试触摸屏裸机程序过程中遇到了很奇怪的问题:
我用JLINK在线调试时,当选择开关打到nandflash时可以成功跳到中断服务程序,
但是当选择开关打到norflash时,再下到SDRAM中就是进不了中断,在ADS下调试触摸屏中断实验时,一按触摸屏发出中断就提示Dummy error......
经过参考后发现因为内部SRAM的地址0x0处都不存在你要调试的程序的中断向量表,不能正确将中断引导到你编写的中断服务程序中来。
我们知道,一般使用JLINK调试程序时是在SDRAM(0x30000000)中的,可是如果程序中包含有中断又该怎么办呢??因为中断程序向量表是存放在0x0开始的8*4个字节中的,而我们调试时程序试运行在SDRAM中的,很明显此事中断向量表不能正常加载,你能看到中断寄存器发生中断请求,但是看不到产生的现象,此时不要误认为你的JLINK有问题,事实上正版的JLINK也是如此,同样看不到现象,因为原因不在JLINK,而在中断向量表没能正确加载,下面简单说说这个问题的解决办法
中断向量表地址在0x00000000,程序放到ram时,必须要把向量表放在0x0处。在不开启mmu是那就得把程序下到norflash,如果