[ZLG-ARM] 异常中断处理!

[复制链接]
 楼主| jimmyzjz 发表于 2009-3-16 10:03 | 显示全部楼层 |阅读模式
我们现在用ADS碰到一个问题,哪位高人帮忙看下:<br /><br />用裸C在S3C2440上开发仪器&nbsp;.<br />有的时候,程序会跑到中断异常里面.我们想追到是哪条语句触发了异常中断.比如:触发了&nbsp;HaltPabort&nbsp;...<br />通过JTAG在AXD中可以看到r14&nbsp;的值为:0x00003110&nbsp;&nbsp;PC的值为:0x33F01138.&nbsp;可以通过&nbsp;Disassembly&nbsp;看到0x33F01138&nbsp;是在HaltPabort函数中...<br /><br />void&nbsp;HaltPabort(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;puts(&quot;Pabort&nbsp;exception!!!
&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1);<br />}<br />请问:如何能知道是哪条语句触发了异常.如何看到0x00003110对应的是哪条C语句呢?&nbsp;对于发生异常,一般该如何处理呢?谢谢!
ZLG_Dengz 发表于 2009-3-17 09:03 | 显示全部楼层

RE

&nbsp;&nbsp;&nbsp;&nbsp;一般进入异常时都会先将PC存于LR中,有时也会再将LR的值存到栈里.&nbsp;你只需要在中断向量表里的相关异常入口处设置断点就可以观察了.&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;如果你用的是ADS的话,在AXD里点击有个&quot;ab&quot;(没有箭头那个)按钮,就会列出标号与地址对应表.<br />&nbsp;&nbsp;&nbsp;&nbsp;希望这些对你有所帮助.
 楼主| jimmyzjz 发表于 2009-3-18 16:29 | 显示全部楼层

恩。谢谢了

  
reeper 发表于 2009-4-3 10:19 | 显示全部楼层

学习

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

4

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部