ADS中调试中断函数时进不了中断服务函数的解决办法

在ADS中调试ARM裸机中断时遇到问题,无法进入中断服务程序。当程序位于SDRAM中时,中断向量表无法正常加载导致中断请求无法响应。解决方案包括将程序烧录到norflash、手动拷贝中断向量表到内部SRAM或使用MMU重定向。若不开启MMU,程序需在norflash运行;开启MMU则需映射SDRAM的0x30000000地址到0x0。
摘要由CSDN通过智能技术生成

最近在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,如果

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值