设备驱动程序课件.ppt

设备驱动程序课件.ppt

ID:57177251

大小:126.50 KB

页数:36页

时间:2020-08-02

设备驱动程序课件.ppt_第1页
设备驱动程序课件.ppt_第2页
设备驱动程序课件.ppt_第3页
设备驱动程序课件.ppt_第4页
设备驱动程序课件.ppt_第5页
资源描述:

《设备驱动程序课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、设备驱动程序(1)1概要设备驱动程序的作用设备驱动程序的分类设备驱动程序在操作系统中的位置机制与策略设备驱动程序的基本结构设备驱动程序如何被使用一个简单设备驱动程序实例2设备驱动程序的作用设备驱动程序将复杂的硬件抽象成一个结构良好的设备,并通过提供统一的程序接口为系统的其它部分提供使用设备的能力和方法。设备驱动程序(应该只是)为系统的其它部分提供各种使用设备的能力,使用设备的方法应该由应用程序决定。3设备驱动程序的分类字符设备驱动程序各种串行接口,并行接口等。块设备驱动程序磁盘设备等网络设备驱动程序网卡等。杂项设备驱动程序不属于上述三种设备之外的一些设备

2、,如时钟等。4在操作系统中的位置设备驱动程序是内核代码的一部分。驱动程序的地址空间是内核的地址空间。驱动程序的代码直接对设备硬件(实际是设备的各种寄存器)进行控制(实际就是读写操作)。应用程序通过操作系统的系统调用执行相应的驱动程序函数。中断则直接执行相应的中断程序代码。设备驱动程序的file_operations结构体的地址被注册到内核中的设备链表中。块设备和字符设备以设备文件的方式建立在文件系统中的/dev目录下,而且每个设备都有一个主设备号和一个次设备号。5块设备驱动程序字符设备驱动程序网络设备驱动程序6ls-l/devcrw-r-----1roo

3、troot1,1Jan100:00memcrw-r-----1rootroot1,2Jan100:00kmemcrw-rw-rw-1rootroot1,3Jan100:00nullcrw-r-----1rootroot1,4Jan100:00portcrw-rw-rw-1rootroot1,5Jan100:00zerocrw-rw-rw-1rootroot1,7Jan100:00fullcrw-r--r--1rootroot1,8Jan100:00randomcrw-r--r--1rootroot1,9Jan100:00urandomcrw-rw-rw-

4、1rootroot5,0Jan100:00ttycrw-------1rootroot5,1Jan100:00consolecrw-rw-rw-1rootroot5,2Jan100:00ptmxdrwxr-xr-x1rootroot0Jan100:00ptydrwxr-xr-x2rootroot0Jan100:00ptsdrwxr-xr-x1rootroot0Jan100:00rddrwxr-xr-x1rootroot0Jan100:00mtddrwxr-xr-x1rootroot0Jan100:00mtdblockcrw-------1rootroot

5、4,64Jan100:15ttyS0crw-------1rootroot4,65Jan100:00ttyS1crw-------1rootroot4,66Jan100:00ttyS2crw-------1rootroot4,67Jan100:00ttyS3crw-------1rootroot4,68Jan100:00ttyS4drwxr-xr-x1rootroot0Jan100:00miscc:字符设备b:块设备主设备号次设备号7机制与策略机制(mechanism)设备驱动程序所具备的能力例如:串行设备驱动程序具有设置波特率的能力。策略(policy

6、)这些能力如何被使用例如:根据需要将串口波特率设置成9.6kbps。设备驱动程序应该是“策略无关”的,即policyfree。8设备驱动程序源代码的基本结构/**驱动程序简单说明:*驱动程序的作用:这是一个字符设备驱动程序的基本框架结构*被驱动设备的简单描述:将使用AT91RM9200的PB端口为例进行说明*一些特殊的考虑等:如PB21作为可以产生中断的输入引脚(本例未实现)*版本,创建日期,作者等:1.0版,2006年1月6日,李毅*/#ifndef__KERNEL__#define__KERNEL__#endif#ifndefMODULE#defin

7、eMODULE#endif#include#include...#include表明这个模块将用于内核,也可以在编译时通过–D选项指定,如gcc–D__KERNEL__。参见Makefile。内核头文件,需要根据具体驱动程序和用到的内核模块确定。表明这个驱动程序将以模块的方式编译和使用,也可以在编译时通过–D选项指定,如gcc–DMODULE。参见Makefile。9/**驱动程序中使用的各种函数的原型声明。标准的作法是将函数原型声明*放在一个头文件

8、中,然后在该文件开始处使用#include引用,并在该*文件中定义。**这里我们

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

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

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