嵌入式Linux下ARM9的中断嵌套问题,求助!

发布于 2022-10-15 10:05:50 字数 349 浏览 32 评论 0

比如使用S3C2440处理器的嵌入式ARM系统,假设存在两个外部中断A和B,定义中断优先级A大于B,工作模式处于IRQ模式下,如果B中断信号先来,系统先处理B中断对应的中断服务程序,在执行过程中中断A信号产生,是否A中断的中断服务程序要等待中断B的中断服务程序完毕,才响应执行中断A,这样就不存在中断嵌套的问题了是吗?(问题一)。但是如果中断A的工作模式为FIQ,是可以打断中断B的中断服务程序,但是这样应该也不属于中断嵌套的范围吧?(问题二)。某些资料说SVC模式下存在中断嵌套的机制,就好象中断B的服务程序运行中被中断A信号打断,优先执行中断A的服务程序后再执行中断B的服务程序,请问如何实现该嵌套?这种机制是否在该模式下存在?(问题三)
   求解,十分感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

二智少女猫性小仙女 2022-10-22 10:05:50

可以看一下微机原理,X86架构配8259中断控制器对,中断进行的处理!有参考价值,你上面密密麻麻的文字,谁都没有心情仔细看的!

自演自醉 2022-10-22 10:05:50

ARM 下七种exception, 各种exception优先级不同,级别高的可以打断级别低的,如reset可以打断FIQ, FIQ可以打断IRQ, 对于同一种exception,如IQR, 是不可以被另一个IRQ打断的,因为在执行ISR时,该exception(IRQ)已经被关闭了,不可能再响应,这也是为什么我们的exception处理分为了ISR和BH。

栀子花开つ 2022-10-22 10:05:50

回复 3# Trigger_Huang

    在执行ISR时,该exception(IRQ)已经被关闭了

这个是不是应该在软件编程是设置相应的状态位啊,在X86架构编程是这样的,ARM也是吗?  没完整学过ARM硬件,请教一下?

执手闯天涯 2022-10-22 10:05:50

回复 4# 2007robot

    ARM 中,当exception产生后, CPU硬件会自动关掉该种类 exception, 不是软件设置的, 等ISR执行完成后,由软件再打开。。。

2022-10-22 10:05:50

谢谢!请问trigger_huang,那是不是在ARM中就不存在中断嵌套的机制了吧?

甩你一脸翔 2022-10-22 10:05:50

中断来了之后,CPU只是屏蔽了对应中断的中断信号线,其他中断信号线是没有被屏蔽的,中断处理完后应该使能对应的中断信号线
同一类型的硬件中断是可以通过软件设置它们之间的优先级的。

伴随着你 2022-10-22 10:05:50

ARM ARCH下, 七种exception或interrupt:的优先级是固定的,不存在还可以用软件去设置ARM的优先级的(X86应该可以),所以同一类型(优先级)的中断是不能被同一类型的中断打断的,不存在同一类型的嵌套的。 但是不同种类(优先级)是可以的。比如FIQ可以打断IRQ中断,那么此时就可以说是中断嵌套。
  不知道我说清楚了没有……

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文