中断还是中断,我讲了很多次的中断了,今天还是要讲中断,为啥呢?因为在操作系统中,中断是必须要讲的..
那么什么叫中断呢, 中断是打断,这样一说你就不明白了? 唉,中断还真是有点像打断。我们知道linux管理所有的硬件设备,要做的第一件事先是通信。
然后,我们天天在说一句话:处理器的速度跟外围硬件设备的速度往往不在一个数量级上,甚至几个数量级的差别,这时咋办,你总不能让处理器在那里傻等着你硬件做好了告诉我一声吧。这很容易就和日常生活联系起来了,这样效率太低。
怎么着,简单一点,轮训(polling)可能就是一种解决方法,缺点是操作系统要做太多的无用功,在那里傻傻的做着不重要而要重复的工作,这里有更好的办法---中断,这个中断不要紧,关键在于从硬件设备的角度上看,已经实现了从被动为主动的历史性突破。
分析中断,本质上是一种特殊的电信号。 (软硬件要分清,这里说的是中断,而不是中断处理)
中断产生告诉中断控制器,继续告诉操作系统内核,内核总是要处理的,是不?这里内核会执行一个叫做中断处理程序或中断处理例程的函数。
中断的概念和中断处理过程
http://blog.csdn.net/ianchoi/article/details/6927528
中断: 请求- 响应- 处理
中断处理过程: 1关2存3识别4
1.关中断:由硬件自动实现,在此中断处理完成前,不处理其它中断;
2.保存断点:将当前的程序计数器PC中的内容保存起来;
3.识别终端源,转向中断服务程序:在多个中断源同时请求中断的情况下,实际响应的只能是优先权最高的那个;
4.保存现场,交换屏蔽字:现场信息一般是指程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容;
5.开中断:开中断将允许更高级的中断请求得到响应,实现中断嵌套;——所谓的可以被其他中断打断? 不想被打算就将处理放在上半部? 4算上半部?
6.执行中断服务程序主体
7.关中断:为了在回复现场和屏蔽字时不要被中断打断;
8.恢复现场和屏蔽字
9.开中断
10.中断返回:由一条IRET指令实现。
程序计数器PC的功能是什么?
用来存放下一条指令的地址的。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指今的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。
关 中 断 | 保 存 断 点 保 护 现 场 | 判 中 断 源 转 中 断 服 务 | 开 中 断 | 执 行 中 断 服 务 程 序 | 关 中 断 | 恢 复 现 场 恢 复 断 点 | 开 中 断 | 返 回 断 点 |
中断控制器的作用:对SoC芯片中各外设的中断进行管理。(顾名思义无处不盛行) 发送出Irq信号给ARM微处理器
中断->中断控制器,连接在APB总线上:
http://wenku.baidu.com/view/d78fdb0490c69ec3d5bb7536.html
关于AHB, APB:
AHB主要用于 高性能 模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上 系统总线。
APB主要用于低带宽的周边外设之间的连接,例如UART、1284等。是外围总线。
http://blog.csdn.net/lunten/article/details/1323809
转自:
http://www.cnblogs.com/hanyan225/archive/2011/07/17/2108609.html
百度文库:http://wenku.baidu.com/view/677be88f83d049649b665871.html