Linux的中断处理的一些说明
1、中断是一种电信号,由硬件设备生成,并直接送入中断控制器的输入引脚上。然后再由中断控制器向处理器发送相应的信号。处理器一经检测到此信号,便中断自己的当前工作转而处理中断。此后,处理器会通知操作系统已经产生中断,这样,操作系统就可以对这个中断进行适当的处理了。
2、不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标识。中断值通常被称为中断请求(IRQ)线。有些中断值是指定的,有些是动态分配的。特定的中断总与特定的设备相关联。
3、异常与中断不同,它在产生时必须考虑与处理器时钟同步。异常也常常称为同步中断。许多处理器体系结构处理异常与中断的方式类似,因此内核对它们的处理也很类似。
4、在响应一个特定中断的时候,内核会执行一个函数,该函数叫做中断处理程序或中断服务例程。产生中断的每个设备都有一个相应的中断处理程序,如果一个设备可以产生多种不同的中断,那么该设备就可以对应多个中断处理程序。一个设备的中断处理程序是它设备驱动程序的一部分。
5、中断处理程序与其他内核函数的真正区别在于:中断处理程序是被内核调用来响应中断的,而它们运行于我们称之为中断上下文的特殊上下文中。
6、中断处理一般分为两个部分,中断处理程序是上半部:接收到一个中断就立即执行,但只做有严格时限的工作,这些工作都是在所有中断被禁止的情况下完成的。能够被允许稍后完成的工作被推迟到下半部去。通常情况下,下半部会在中断处理程序返回时立即执行。
7、Linux中的中断处理程序是无需重入的。当一个给定的中断处理程序正在执行时,相应的中断线在所有处理器上都会被屏蔽掉,以防止在同一中断线上接收另一个新的中断。通常情况下,所有其他的中断都是打开的,所以这些不同中断线上的其它中断都能被处理,但当前中断线总是被禁止的。由此可以看出,同一个中断处理程序绝对不会被同时调用以处理嵌套中断。
8、共享的中断处理程序与非共享的在注册和运行方式上比较类似,但差异主要有以下三处:
A,注册中断处理程序函数request_irq()的参数flags必须设置SA_SHIRQ标志。
B,对每个注册的中断处理程序来说,dev_id参数必须唯一。不能给共享的处理程序传递NULL值。
C,中断处理程序必须能够区分它的设备是否真的产生了中断。否则它根本无法知道是它对应的设备发出了这个中断还是共享这条中断线的其它设备发出了这个中断。
9、当执行一个中
相关文档:
Linux操作系统是一种多用户多任务、支持多种平台的开源的类Unix操作系统,其支持多种平台,在服务端可与其它商用类Unix系统媲美,在客户端则向Windows系列发出了强有力的挑战。自Linux诞生以来,发展迅猛,已经受到了全球开源社区和许多商业科技巨头的大力支持以及政府、教育机构、科研单位的重视。本文介绍了Linux虚拟存储 ......
面对不断升级的内核,如何学习linux设备驱动
  ......
(加#的命令为必须在根用户权限下操作)
一、关机与重新启动
1)#init 0重启 #init 6关机(改变系统运行级别的方法)
2)#reboot重启 #halt关机(命令法)
3)#showdown -h +5 (5分钟后关机) #showdown -r +5(5分钟后重启)
二、常用目录操作命令
1)显示文件和目录:ls -a ......
这里指内核的版本号的命令机制
Linux内核版本有两种:稳定版和开发版,稳定的内核具有工业级的强度,可以广泛地应用和部署,新的稳定内核相对于较旧的只是修正一些bug或加入一些新的驱动程序,而开发版内核由于要试验各种解决方案,所以变化很快。
Linux内核的命令机制:
num.num.num
其中第一个数字是主版本号,第二 ......