BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #5237同步于 2009/6/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

关于arm中断处理?

bewithyou
2009/6/28镜像同步4 回复
1.当产生一个外部中断后,当此中断还在仲裁阶段,又发生第二个这样的中断,那第二个中断就被忽略掉了? 2.当进入的一个外部中断的ISR中,该如何设置中断寄存器,防止突然又进入别的中断ISR中?比如已经进入一个extint0的ISR了,此时又发生一个extint0中断,那就中断嵌套了? 3.进入中断isr中,应该如何操作一系列中断寄存器?
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
hobby机器人#1 · 2009/6/28
对于中断的处理,虽然ARM的没做过,不过应该有些通用的做法可以参考吧(例如可以参考Linux和uboot中的实现方法) 关于第2个问题,前段时间看linux内核源码时好像看到:通过系统调用disable_irq,可以将某个中断对应的中断处理函数换掉(其实就是变更结构体上的一个函数指针),好像还对中断的状态进行了标记,大概是告知内核:diable_irq之后,再发生这个中断时请不要理会。 还有,你有跑OS吗?要是Linux的话,直接LDD搞嘛~
hobby机器人#2 · 2009/6/29
补充一句,还有一个比较简单的方法,但是不知道这样做合不合适 可以直接操作CPU内部中断控制寄存器,禁用掉相应中断(大概叫UIC寄存器或者什么的)
bewithyou机器人#3 · 2009/6/29
【 在 hobby 的大作中提到: 】 : 补充一句,还有一个比较简单的方法,但是不知道这样做合不合适 : 可以直接操作CPU内部中断控制寄存器,禁用掉相应中断(大概叫UIC寄存器或者什么的) uic好像是ppc里面的通用中断? 如果在“禁用掉相应中断”之前,刚好发生了同一个中断,怎么办?
hobby机器人#4 · 2009/6/30
【 在 bewithyou 的大作中提到: 】 : uic好像是ppc里面的通用中断? : 如果在“禁用掉相应中断”之前,刚好发生了同一个中断,怎么办? 嗯,PPC里的确是叫UIC(……因为我做过的就ppc……),不过arm里面也应该有这样的寄存器吧,负责管理各个中断是否enable的。 一进中断处理函数,第一件事儿就是disable,中断处理函数返回前最后一件事情是再重新enable,这就OK了啊