基于嵌入式linux的中断驱动程序设计

基于嵌入式linux的中断驱动程序设计

ID:28010070

大小:218.50 KB

页数:9页

时间:2018-12-07

基于嵌入式linux的中断驱动程序设计_第1页
基于嵌入式linux的中断驱动程序设计_第2页
基于嵌入式linux的中断驱动程序设计_第3页
基于嵌入式linux的中断驱动程序设计_第4页
基于嵌入式linux的中断驱动程序设计_第5页
资源描述:

《基于嵌入式linux的中断驱动程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于嵌入式Linux的中断驱动程序设计摘要在现代计算机系统中,中断不仅是中央处理机与外部设备并行工作的基础之一,而且还是多道程序并发执行的动力,乃至整个操作系统稳定、高效运行的推动力。在我们的RTOS中,能否对实时中断请求及时响应将极大的影响整个系统的实时性能。Linux的中断分为两种,一种是由CPU外部产生的,称为“外部中断”,另一种称为“陷阱”,一般是由软件产生的。Linux操作系统下,设备驱动程序的实现原理和编写方法,然后说明了中断处理在设备驱动程序中的应用,并详细论述了中断方式下,编写设备驱动程序的具体开发流程,进一步分析了编写中断处理程序时所用到一些数据结

2、构。应用证明在编写linux设备驱动程序的时候,采用中断方式的程序效率会更高。关键词:Linux;设备驱动;中断;嵌入式操作系统。0引言计算机技术发展到今天,嵌入式实时计算机系统已经成为其中品种最繁多,用户数量最庞大,应用市场最广阔的计算机系统,并且已经深入到了航天科研、工程设计、军事技术、以及人们生产、生活等诸方面。而嵌入式实时操作系统,作为嵌入式计算机系统最重要的软件核心,也就成了该领域最重要的研究方向实时操作系统(RTOS-RealTimeOperatingSystem)是指一个能够在指定的时间范围内完成特定的功能或者对外部的异步事件做出响应的操作系统。甴于L

3、inux开放源码,近年来发展势头迅猛,已经发展成为了一个健壮可靠的高性能操作系统。由于开放源码,Linux用户可以充分利用这种透明性,最大限度地控制系统开发的进度和开发成本。而且,Linux是模块化的操作系统,提供了优秀的可扩展功能,用户可以方便地删除不需要的模块,根据自己的需要,配霄满足自己需求的系统特性和功能。另外,凭借着优良的内核代码组织结构,高效健壮的系统体系结构,便于实施的安全策略,以及丰富的开放应用软件等众多优点,Linux更是成为了当代最具有影响力的主流操作系统之一,发展潜力非常可观。因此,在实时应用方面,愈柬愈多的嵌入式系统开发人员将目光转向了Lin

4、ux,试矧将Linux打造成为一个优秀的嵌入式实时操作系统,使得Linux在嵌入式实时应用领域中得到越来越广泛的应用。1.1嵌入式Linux的中断概述Linux的中断宏观分为两种:软中断和硬中断。声明一下,这里的软和硬的意思是指和软件相关以及和硬件相关,而不是软件实现的中断或硬件实现的中断。软中断就是“信号机制”。软中断不是软件中断。Linux通过信号来产生对进程的各种中断操作,我们现在知道的信号共有31个,其具体内容这里略过。一般来说,软中断是由内核机制的触发事件引起的(例如进程运行超时),但是不可忽视有大量的软中断也是由于和硬件有关的中断引起的,例如当打印机端口

5、产生一个硬件中断时,会通知和硬件相关的硬中断,硬中断就会产生一个软中断并送到操作系统内核里,这样内核就会根据这个软中断唤醒睡眠在打印机任务队列中的处理进程。硬中断就是通常意义上的“中断处理程序”,它是直接处理由硬件发过来的中断信号的。当硬中断收到它应当处理的中断信号以后,就回去自己驱动的设备上去看看设备的状态寄存器以了解发生了什么事情,并进行相应的操作。1.2嵌入式Linux的中断机制在现代计算机系统中,中断不仅是中央处理机与外部设备并行工作的基础之一,而且还是多道程序并发执行的动力,乃至整个操作系统稳定、高效运行的推动力。在我们的RTOS中,能否对实时中断请求及时

6、响应将极大的影响整个系统的实时性能。Linux的中断分为两种,一种是由CPU外部产生的,称为“外部中断”,另一种称为“陷阱”,一般是由软件产生的,如X86中的“INTn”,在程序中有意地产生的,所以是“同步”的。另外,在Linux中,还有一种跟中断相似的机制,称为“异常”,一般也是异步的。对以上三种类似的机制,标准Linux内核的处理过程足基本相同的:每个中断、异常都用一个介于0到255之间的数束标识,称为“向量”。在执行完当前的指令之后,或者执行当前指令的中途,内核根据中断向量源所提供的“向量”,在位于内存中某处的一张表(称为中断向量表IDT)中查找到相应的服务程

7、序入口,并且调用该服务程序。外部中断的向量号往往是由硬件设置决定的,陷阱的向量号则包含在“自陷”指令中,而各种异常的向量号则是在CPU的硬件结构中预先规定好的。执行中断服务程序的时候,内核必须处于内核态”1。如果是在用户进程运行时发生了中断,系统就必须先切换到内核模式。中断处理完毕后,内核将控制返回给用户进程,用户进程能够从被打断的位胃继续运行。如果中断发生的时候,内核正在执行一个内核任务,系统已经处于内核念,那么中断处理将会打断该内核任务的执行,中断处理返[ul的时候控制权将会被返还到先酌被中断的内核任务。同时,为了减小中断响应延迟,Linux还将中断处理分为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。