微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > ARM 中断处理的安全性与高效性研究

ARM 中断处理的安全性与高效性研究

时间:03-04 来源:互联网 点击:
5 基于优先级的可重入中断

在上面的可重人中断中可能发生这种情形,某高优先级中断在中断服务程序中因为重新允许了中断请求而被另一低优先级中断所打断,于是高优先级中断不得不等到低优先级中断完毕后方可继续运行。这样一来,高优先级中断服务的延迟将更加增大。

为了减少上述高优先级中断的延迟,特别引入了基于优先级的可重人性中断。它的原则是:在中断服务程序中只允许高于本中断的其他中断源予以请求中断,因此一个高优先级的中断将比一个低优先级的中断优先得到服务,这是大多数嵌入式系统中所必需的。采取的方法是,当某优先级中断发生时,在其中断处理程序中可以使用屏蔽位将低于或等于该优先级的中断予以屏蔽。特别需要注意的是,在退出本中断时要恢复原中断寄存器的值。在此假设有这样几个中断寄存器(其实ARM的很多处理器都有此类的中断控制寄存器):IRQMask,中断源屏蔽寄存器;IRQStatus,中断标志寄存器;IRQClear,清除中断标志寄存器。同时假设中断的优先级是从高位(bit31)到低位(bitO)递减的,那么首先可以预定义如下的屏蔽变量值:




本程序的上下文保存与可重人中断处理基本相同。增加的部分在于中断屏蔽码的查询与设置,相应的处理步骤可以参考图4。

结语

本文重点研究了ARM处理器在多种中断处理中上下文保存的安全与高效性,结合处理器结构图和程序代码分析了各种中断的处理方案。对ARM处理器具有通用价值而不受不同厂商硬件的局限。

文中涉及的程序源代码都在ADSl.2开发环境和SEP4020开发评估板上测试过。实验证明此中断处理技术是安全高效的。

参考文献

   1. Andrew N Sloss.Dominic Symes.Chris Wright.沈建华 ARM 嵌入式系统开发--软件设计与优化 2005
   2. ARM公司 ARM Developer Guide
   3. 文全刚 汇编语言程序设计--基于ARM体系结构 2007
   4. Labrosse Jean J.邵贝贝 嵌入式实时操作系统μC/OS-II 2003

作者:湖南师范大学 蒋俊 钱光明 来源:单片机与嵌入式系统应用 2009(5)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top