嵌入式系统的异常和中断_第1页
嵌入式系统的异常和中断_第2页
嵌入式系统的异常和中断_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大多数嵌入式处理器体系结构提供异常和中断机制,允许处理器中断正常的执行路径。 这个中断可能有应用软件有意的触发,或者由一个错误的、不寻常的条件或某些非计划的外 部事件触发。许多实时操作系统提供处理异常和中断的封装器功能,以便保护嵌入式系统开发者避 开低层的细节。这种应用编程层允许程序员把精力集中在必须处理的高层异常处理上,而不 是在处理那些冗长的序言和结束语的系统层次上。然而,当程序员从一个嵌入式应用程序员 过渡到一个嵌入式系统程序员的时候,这种隔离可能产生误会并且变成一种障碍。一、什么是异常和中断一个异常是指任何打断处理器正常执行,并且迫使处理器进入一个由有特权的特殊指 令执行的事件。异常可

2、以分为两类:同步异常和异步异常。由内部事件(像处理器指令运行产生的事件)引起的异常称为同步异常。同步异常的 例子包括下列各项:在某些处理器体系结构中,对于确定的数据尺寸必须从内存的偶数地址进行读和写操 作。从一个奇数内存地址的读或写操作将引起存储器存取一个错误事件并引起一个异常(称 为校准异常)。造成被零除的算术运算引发一个异常。由外部事件(与处理器指令执行不相关的事件)引发的异常,称为异步异常。一般, 这些外部事件与硬件信号相关。这些硬件信号典型的来源于外部硬件装置。异步异常的例子 包括下列各项:按下嵌入式板上的复位按钮,触发一个异步的异常(称为系统复位异常)。另外一个外部设备的例子是,通信

3、处理器模块已经成为许多嵌入式设计的一个完整部 分,当它接收数据包时引发异步异常。一个中断,有时称为一个外部中断,是一个由外部硬件装置产生的事件引起的异步异 常。中断是异常的一类。中断区别于其它类型的异常,或更精确地说,同步异常区别于异步 异常的地方是事件的来源。同步异常事件是由于执行某些指令而从处理器内部产生的。而异 步异常事件的来源是外部硬件装置。异常和中断是大多数嵌入式系统中必须存在的精灵。这个设施是处理器体系结构特定 的;如果误用,将成为混乱的设计源。而异常和中断引入了挑战性的复杂化设计并且强化了 严格的代码需求,它们在嵌入式应用程序中几乎是不可缺少的。二、异常和中断的应用从应用的观点看

4、,异常和外部中断提供一个设施使嵌入式硬件(处理机内部或外部的) 得到应用代码的注意。中断是硬件与一个当前在嵌入式处理器上运行的应用程序之间通信的 一种方法。一般来讲,异常和中断可在三个方面帮助嵌入式工程师:内部错误和特殊条件的管理;硬件并发;服务请求管理。2.1内部错误和特殊条件的管理对大范围的错误进行处理和适当复原而且不能导致停机,是嵌入式系统应用领域所必 需的。异常是在处理器执行指令时,探测发现的错误条件或特殊条件。错误条件的发生可以 由多种原因引起,如一些未预料到的条件引起的被零除、溢出或其他数学错误等等。特殊条 件是由特别的指令产生的异常。这些指令允许程序迫使处理器进入特权的运行模式,

5、结果得 到对一个特权指令组的访问。虽然不是所有的微控制器或嵌入式处理器都定义相同类型的异常或以相同的方式进行 处理,但总是有一个可用的异常设施,并且帮助系统工程师对这些内在错误和特殊条件设计 一个可控的响应。2.2硬件并发与服务请求管理同时执行不同类型工作的能力对于嵌入式系统是十分重要的。许多外部的硬件装置可 以与核心处理器并行的执行装置特定的操作。这些装置要求来自核心处理器的干扰最小。并 发的关键是知道处理器装置何时已经完成先前的工作,以便于可以分配另外的工作。外部中 断用来实现这个目标。外部中断的另一种用法是提供一个通信机制给嵌入式处理器发信号,或者提醒它这里 有一个外部硬件装置正在请求服

6、务。异常及其近亲一一外部中断的能力,增强了嵌入式的设计。然而,在嵌入式设计中使 用一般的异常设施,需要依照每个特定的一般异常的来源和相关的原因,适当的处理一般异 常。三、近距离看异常的中断一般异常具有分类并且给予分类给定优先权。在外部中断中,很可能有其他等级的优 先权,它们是中断硬件强加和强制的。了解引起一般异常的硬件来源,实现控制传递的硬件 以及决定控制向量驻留在哪里的机制,是适当地安装一般异常处理程序并且正确的编写一般 异常处理程序的关键3.1可编程中断控制器和外部中断大多数嵌入式设计具有不止一个外部中断源,被冠以优先权。为理解处理过程,必须 清楚地理解可编程中断控制器PIC的概念。PIC

7、是实现依赖的。它能以多种形式出现,且有时给予不同的名字。然而,它全部服从 于相同的目的,并且提供两个主要的功能:给多个中断来源优先权,以便将最高优先级中断随时送到核心处理器中处理。使用需要的进程判断中断的准确来源,降低核心CPU的负载。理解中断源的优先权,可是嵌入式系统程序员能够更好地理解嵌套中断的概念。这个 术语表示较高优先权中断源可以抢占一个较低优先级的中断处理。如果这个中断表全部按系 统优先权排序,则很容易看出较高优先权中断如何影响较低优先权的中断源以及它们的运行 时间和频度。这个信息有助于嵌入式系统程序员设计和实现更好的允许嵌套中断的ISR。中断表的最大频度栏叙述放置在ISR上的、对全部系统影响最小的处理时间约束中。向量地址栏叙述了将ISR安装到内存的什么地方。处理器自动的从基于中断编号的已 知地址之一中取得指令,IRQ栏指定中断编号。这个指令开始中断特定的服务例程。一般说 来,向量表也覆盖同步异常的服务例程。服务例程也简称向量。3.2 一般异常的分类虽然不是所有的嵌入式处理器都以相同的方式实现异常,但是大部分新近的处理器都 具有下面的异常类型:异步-不可屏蔽的(asynch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论