免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1140 | 回复: 0
打印 上一主题 下一主题

嵌入式操作系统分析(二):中断之中断机制 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-06 10:37 |只看该作者 |倒序浏览
作者:gogofly  邮箱:
gogofly_lee@yahoo.com.cn

1.     概述:
中断控制是计算机发展中一种重要的技术。最初它是为克服对I/O接口控制采用程序查询所带来的处理器低效率而产生的。中断控制的主要优点是只有在I/O需要服务时才能得到处理器的响应,而不需要处理器不断地进行查询。由此,最初的中断全部是对外部设备而言的,即称为外部中断(或硬件中断)。但随着计算机系统结构的不断改进以及应用技术的提高,中断的适用范围也扩大,出现了所谓的内部中断(或异常),是为解决机器运行时所出现的某些随机事件及编程方便而出现的。因而形成了一个完整的中断系统。中断控制是所有计算机系统的一个核心模块,不同的硬件平台,有不同的中断机制.不管怎样,中断机制最核心的部分是中断向量表,每一种硬件体系根据自己的实现提供一张中断向量表。

2.     中断向量表:
此向量表提供了所有支持的中断定义以及相应的中断服务程序,当发生异常时,首先要保存当前的处理器状态,然后进入到相应的异常向量地址,一般来说在异常向量地址是一个跳转指令,使程序进入相应的异常处理过程。
X86中,中断向量表存储于存储器的前1024字节中,它包括256种不同的4字节中断向量。
ARM中,中断向量表存储于存储器的低端或者高端地址的前0x1c(依赖于硬件的具体配置),它支持7种类型的异常,其中第一个中断向量是复位中断向量,当系统复位后,从此开始重新执行。
在Motorola的68K中,中断向量表占用存储器的1024字节中,它包括256种不同的中断向量。其地址根据VBR的配置的不同而不同,其中第一个中断向量是复位中断向量,当系统复位后,从此开始重新执行。

3.     中断种类:
根据中断向量表,可以把这些中断具体分为同步中断,异步中断,软中断:
同步中断(exception),也即是我们通常所说的异常(),是在CPU执行特定指令时出现的非法情况,它的产生是由于前面的CPU操作引起的,是同步发生的。比较典型的异常有:除零异常。一些体系结构下的复位中断也可以算是一种异常。
异步中断(interrupt):主要是由外部事件触发的,这就是我们常说的中断,它的发生不可预料的,是异步的。比如说,键盘中断等。在不同的体系结构中,中断机制也不一样。一般可以分为可屏蔽中断和非屏蔽中断。
软中断(software interrupt ):在大多数硬件体系结构中,都提供软中断的功能,主要用于进入
管理
模式等的手段。
X86中,除前32个作为Intel专用中断向量外,其他224作为用户自定义中断。0~31的向量对应于异常和非屏蔽中断。32~47的向量(即由I/O设备引起的中断)分配给屏蔽中断。48~255的向量用来标识软中断。Linux只用了其中的一个(即128或0x80向量)用来实现系统调用。
ARM中,除了定义的5个异常外,有2个专门用于中断,这2个中断被分为快中断和慢中断。由于快中断有专门的寄存器保存上下文,避免了许多上下文切换开销,所以快中断能够比慢中断快,而且在处理快中断时,慢中断会被屏蔽掉。这2个中断提供了系统的所有中断入口,系统查询相应的中断控制器来区分具体的中断。
在Motorola的68K中,中断向量表提供了7个中断优先级和192个可分配的中断向量,其中7级是不可屏蔽中断。

参考:
1。Intel Xscale ProcessorDeveloper's Manual
2。MC680360 QUad 通讯控制器手册
3。Intel系列微处理器结构,编程和接口技术大全
4。Arm 嵌入式处理器结构与应用基础


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56757/showart_1815200.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP