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

嵌入式Linux下ARM9的中断嵌套问题,求助,第1张

ARM 下七种exception, 各种exception优先级不同,级别高的可以打断级别低的,如reset可以打断FIQ, FIQ可以打断IRQ, 对于同一种exception,如IQR, 是不可以被另一个IRQ打断的,因为在执行ISR时,该exception(IRQ)已经被关闭了,不可能再响应,这也是为什么我们的exception处理分为了ISR和BH。中断来了之后,CPU只是屏蔽了对应中断的中断信号,其他中断信号线是没有被屏蔽的,中断处理完后应该使能对应的中断信号线同一类型的硬件中断是可以通过软件设置它们之间的优先级的。

:可以的 51单片机的默认(此时的IP寄存器不做设置)中断优先级为: 外部中断0 >定时/计数器0 >外部中断1 >定时/计数器1 >串行中断; 但这种优先级只是逻辑上的优先级,当同时有几种中断到达时,高优先级中断会先得到服务。

中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:

(1)先响应优先级高的中断请求,再响应优先级低的中断请求。

(2)如果一个中断请求己被响应,同级的其他中断请求将被禁止。

(3)如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。

单片机内部自然优先级顺序(由高到低)为:

外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/9025914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-24
下一篇 2023-04-24

发表评论

登录后才能评论

评论列表(0条)

保存