新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式Linux中断现场保护的改进方法

嵌入式Linux中断现场保护的改进方法

作者:时间:2013-10-23来源:网络收藏

一、嵌入式系统的实时性

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统,而高实时性是嵌入式系统的基本要求。

IEEE(美国电气电子工程师协会)定义实时系统为“那些正确性不仅取决于计算的逻辑结果,也取决于产生结果所花费的时间的系统”。实时系统一般可分为硬件实时和软件实时这两大类:硬实时系统有一个强制性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失效、或者系统不能实现它的预期目标。软实时系统的时限是柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,仅仅是轻微的降低了系统的吞吐量。

二、

中断的实时性是实时系统的一个重要方面。是影响中断实时性的主要因素。中断响应定义为从中断发生到开始执行用户的中断服务代码来处理这个中断的时间[1>,其中包括中断延迟时间和保护中断现场的时间。所有实时系统在进入临界区代码段之前都要关中断,执行完临界代码之后再开中断。中断延迟时间即是从发出中断请求到任务开中断的这段时间[1>。保护中断现场有两个作用。首先是为了保护中断前任务的现场。其次,如果发生中断嵌套,还必须保护上层中断的现场。因此,整个中断响应过程如图1所示。要让中断服务尽快得到处理,就必须减少。但是从图中可以看出,中断延迟时间是由中断前任务决定的,在进入中断时只能通过尽量缩短的时间来达到减少中断响应时间,从而提高中断实时性。
嵌入式Linux中断现场保护的改进方法
图1. 中断响应示意图

三、的改进

3.1 传统方法

对于现在大多数嵌入式操作系统,在进入中断时首先做的第一件事就是保护中断发生前的现场,即保存返回地址、程序状态字、堆栈指针以及所有通用寄存器到中断堆栈,以防止用户中断服务子程序对中断返回后现场的破坏。以µC/OS-II微内核为例,在arm和X86两种体系结构微处理器上进入中断后保存现场的过程如图2所示。从代码中可见,两种不同的体系结构中,为保护现场,都需要执行三条访存指令,其中一条为批量访存指令(STMFD SP!,{R0-R12}和PUSHA)用以保护通用寄存器R0-R12和AX,CX,DX,BX,SP,BP,SI,DI。
嵌入式Linux中断现场保护的改进方法
图2. arm、X86上µC/OS-II中断现场保护

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭