打印
[ZLG-ARM]

异常中断处理!

[复制链接]
1498|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jimmyzjz|  楼主 | 2009-3-16 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们现在用ADS碰到一个问题,哪位高人帮忙看下:

用裸C在S3C2440上开发仪器 .
有的时候,程序会跑到中断异常里面.我们想追到是哪条语句触发了异常中断.比如:触发了 HaltPabort ...
通过JTAG在AXD中可以看到r14 的值为:0x00003110  PC的值为:0x33F01138. 可以通过 Disassembly 看到0x33F01138 是在HaltPabort函数中...

void HaltPabort(void)
{
    puts("Pabort exception!!! ");
    while(1);
}
请问:如何能知道是哪条语句触发了异常.如何看到0x00003110对应的是哪条C语句呢? 对于发生异常,一般该如何处理呢?谢谢!

相关帖子

沙发
ZLG_Dengz| | 2009-3-17 09:03 | 只看该作者

RE

    一般进入异常时都会先将PC存于LR中,有时也会再将LR的值存到栈里. 你只需要在中断向量表里的相关异常入口处设置断点就可以观察了. 
    如果你用的是ADS的话,在AXD里点击有个"ab"(没有箭头那个)按钮,就会列出标号与地址对应表.
    希望这些对你有所帮助.

使用特权

评论回复
板凳
jimmyzjz|  楼主 | 2009-3-18 16:29 | 只看该作者

恩。谢谢了

使用特权

评论回复
地板
reeper| | 2009-4-3 10:19 | 只看该作者

学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝