打印

ARM中的中断如何处理?

[复制链接]
1824|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hzpyl|  楼主 | 2008-4-2 22:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ARM中的中断如下: 
                B           InitReset           ; 0x00 复位句柄 

undefvec: 
                B           undefvec            ; 0x04 未定义指令 
swivec: 
                B           swivec              ; 0x08 软件中断 
pabtvec: 
                B           pabtvec             ; 0x0C 预取中止 
dabtvec: 
                B           dabtvec             ;; 0x10 数据中止 
rsvdvec: 
                B           rsvdvec             ; 0x14 保留 
irqvec: 
                B           IRQ_Handler_Entry   ; 0x18 IRQ 

fiqvec:                                               ; 0x1c FIQ 
;---------------------------------------------------------------------------------- 

其中:未定义指令/软件中断/预取中止/数据中止/保留,都为死循环。 
问题是: 
1,正常工作时,会进入这些中断吗? 
2,若会进入这些中断,如何处理? 

我用AT91SAM7A3做了一系统,用群脉冲4KV打,有时打一个小时没问题,但同样的一块板,有时打几秒就死。 
我在怀疑这些中断,但由于群脉冲打时,仿真器和电脑都会死机,故仿真器连不上。 
模糊中...... 

相关帖子

沙发
xhtxzxw| | 2008-4-2 23:56 | 只看该作者

嘿嘿

看清楚了,这是ATMEL提供的样例代码吧?
样例代码中,几乎所有的中断服务函数都是这样写的,死循环。
写样例代码的人觉得:所有的中断都必须处理,也就是说必须都有中断处理函数,但是写样例代码的人并不知道你在中断服务函数里要做什么,所以就这样写了:简单且无破坏作用。
真正用的时候,还是要自己写中断服务函数代码的。

使用特权

评论回复
板凳
hzpyl|  楼主 | 2008-4-7 18:19 | 只看该作者

问题是,会出现更严重的问题吗?
例如:未定义指令中断,我在程序中肯定没有用未定义指令,若发生了未定义指令中断,假如我退出中断继续执行,会出现更严重的问题吗?如:冲掉RAM等。
如果会出现更严重的问题,我想还不如死循环,等待看门狗复位。

哎,真不知如何?

使用特权

评论回复
地板
metersun| | 2008-4-7 18:24 | 只看该作者

最好处理一下

写个服务程序,进入此类中断后,通过串口输出异常信息,或判断指令,重新定位代码或数据地址.

使用特权

评论回复
5
hynwind| | 2008-4-9 21:51 | 只看该作者

这个讲的不错

可以到这里看看:
http://www.witech.com.cn/news/Article_Show.asp?ArticleID=328




*********************************************
*             飞凌嵌入式                    *
*         www.witech.com.cn                 *
*********************************************

使用特权

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

本版积分规则

3

主题

47

帖子

1

粉丝