Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188932
  • 博文数量: 20
  • 博客积分: 543
  • 博客等级: 下士
  • 技术积分: 411
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-06 20:38
文章存档

2012年(12)

2009年(8)

分类: LINUX

2009-06-06 21:46:43

by Qing Li and Carolyn Yao ISBN:1578201241
© 2003 (294 pages)

本节是《》这本书的第10.2节翻译。

10.2 什么是异常和中断


异常是指任何打断处理器的正常执行过程、迫使处理器转换到特权状态执行特定指令的事件。 异常可以分为两类: 同步异常和异步异常。

由内部事件(如在执行处理器指令时产生的事件)引发的异常,称为同步异常。同步异常的例子包括:
1.有些处理器体系结构中,读和写一定大小的数据时,必须在偶数的内存地址处开始。 在奇地址处的内存读写会产生一个内存访问错误事件,并引发一个异常(称为对齐异常)。
2.除数为零的算术操作引发的异常

由外部事件(即跟处理器指令的执行无关的事件)引发的异常称为异步异常。 通常,这些外部事件是跟硬件信号相关的,硬件信号通常来源于外部硬件设备。 异步异常的例子包括:
1. 按下嵌入式板子上的Reset键将触发一个外部异常(称为系统重置异常)。
2. 很多嵌入式设计中必需的通信处理模块在接收到数据包时引发异步异常。

中断,有时称为外部中断,是指由外部硬件设备事件触发的异步异常。 中断是异常的一种。中断与其它异常的区别,或者更确切的说,同步异常与异步异常的区别,是事件的来源不同。同步异常事件来自处理器内部,由处理器在执行某些指令时产生。异步异常事件来自外部硬件设备。

因为中断这个名词已经被广泛使用, 下文中我们用异常来表示同步异常, 用中断表示异步异常, 使用广义异常表示两者。 全书中, 中断外部异常两个词可以互换,

异常和中断是邪恶而又必不可少的,它们存在于大多数的嵌入式系统中。 它们跟处理器体系结构相关, 如果使用不当将带来很多的麻烦和故障。 异常和中断增加了设计的复杂性,给程序开发施加了严格的要求, 但是它们在嵌入式应用中式必不可少的。 接下来的几节将讲述中断和异常机制的最普通但非常重要的应用。

阅读(3111) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~