arm中断优先级(51中断优先级)

简介

在一个系统中,中断是被协议好的一种方式,它使设备能让处理器立即处理它们重要的事件。当开启一个新的中断时,它会中断处理器正在执行的程序,跑另一个特定的子程序来处理该中断,当该中断处理完毕时,处理器会回到中断发生之前执行的程序。在ARM微控制器中,中断被分成优先级,具有更高优先级的中断可以打断低优先级的中断。

中断优先级

在ARM架构中,中断被细分为 256 个优先级。这 256 个中断优先级中,0 代表最高级别中断,255 代表最低级别中断。在 嵌入式系统中,每个中断都与一个优先级相关联。当一个中断被以高优先级触发而正在处理另一个中断时,它会打断当前中断,降低优先级并等带正在处理的中断完成后,重启优先级高的中断。

中断优先级的设置

在ARM微控制器中,中断的优先级被设定为中断源的优先级。在所有中断源都被初始化后,中断的操作系统可以为每个中断源分配优先级。在ARM中,写入5个优先级级别寄存器来分配中断的优先级配置,这些寄存器名为:
INTERRUPT_PRIORITY_REGISTER0
INTERRUPT_PRIORITY_REGISTER1
INTERRUPT_PRIORITY_REGISTER2
INTERRUPT_PRIORITY_REGISTER3
INTERRUPT_PRIORITY_REGISTER4

基本层次结构表明,ARM微控制器的中断控制器模块将所有中断源分为了若干组。在每个组中,中断源的优先级有序地挨个编号,有着单独的寄存器,被命名为 “INTERRUPT_PRIORITY_REGISTER0”、“INTERRUPT_PRIORITY_REGISTER1”…“INTERRUPT_PRIORITY_REGISTER4”。其中的每一个寄存器有 32 个 8 位的字段。每个字段对应一个中断源编号对应的 8 个优先级中的一个。

在ARM Cortex芯片中,可以设置中断的优先级在相同的组中,但是不同组之间的中断优先级不能重叠。如果使用有多个优先级的设备,则代码可能需要在设备初始化时初始化多个寄存器,确保它们具有正确的优先级设置。中断优先级的设置和他们在特定的嵌入式系统中的管理架构密切联系,他们都需要被设置为支持正确的中断排队和处理,并且需要确保无论中断源是什么类型,都能保证适当的优先级设置。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/arm-8yz5.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年5月1日 下午6:15
下一篇 2023年5月1日 下午6:15

猜你喜欢