欢迎来到天天文库
浏览记录
ID:52549395
大小:135.00 KB
页数:36页
时间:2020-04-10
《设备驱动程序(1).ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、设备驱动程序(1)概要设备驱动程序的作用设备驱动程序的分类设备驱动程序在操作系统中的位置机制与策略设备驱动程序的基本结构设备驱动程序如何被使用一个简单设备驱动程序实例2设备驱动程序的作用设备驱动程序将复杂的硬件抽象成一个结构良好的设备,并通过提供统一的程序接口为系统的其它部分提供使用设备的能力和方法。设备驱动程序(应该只是)为系统的其它部分提供各种使用设备的能力,使用设备的方法应该由应用程序决定。3设备驱动程序的分类字符设备驱动程序各种串行接口,并行接口等。块设备驱动程序磁盘设备等网络设备驱动程序网卡等。杂
2、项设备驱动程序不属于上述三种设备之外的一些设备,如时钟等。4在操作系统中的位置设备驱动程序是内核代码的一部分。驱动程序的地址空间是内核的地址空间。驱动程序的代码直接对设备硬件(实际是设备的各种寄存器)进行控制(实际就是读写操作)。应用程序通过操作系统的系统调用执行相应的驱动程序函数。中断则直接执行相应的中断程序代码。设备驱动程序的file_operations结构体的地址被注册到内核中的设备链表中。块设备和字符设备以设备文件的方式建立在文件系统中的/dev目录下,而且每个设备都有一个主设备号和一个次设备号。
3、5块设备驱动程序字符设备驱动程序网络设备驱动程序6ls-l/devcrw-r-----1rootroot1,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--1roo
4、troot1,8Jan100:00randomcrw-r--r--1rootroot1,9Jan100:00urandomcrw-rw-rw-1rootroot5,0Jan100:00ttycrw-------1rootroot5,1Jan100:00consolecrw-rw-rw-1rootroot5,2Jan100:00ptmxdrwxr-xr-x1rootroot0Jan100:00ptydrwxr-xr-x2rootroot0Jan100:00ptsdrwxr-xr-x1rootroot0Jan1
5、00:00rddrwxr-xr-x1rootroot0Jan100:00mtddrwxr-xr-x1rootroot0Jan100:00mtdblockcrw-------1rootroot4,64Jan100:15ttyS0crw-------1rootroot4,65Jan100:00ttyS1crw-------1rootroot4,66Jan100:00ttyS2crw-------1rootroot4,67Jan100:00ttyS3crw-------1rootroot4,68Jan100:00
6、ttyS4drwxr-xr-x1rootroot0Jan100:00miscc:字符设备b:块设备主设备号次设备号7机制与策略机制(mechanism)设备驱动程序所具备的能力例如:串行设备驱动程序具有设置波特率的能力。策略(policy)这些能力如何被使用例如:根据需要将串口波特率设置成9.6kbps。设备驱动程序应该是“策略无关”的,即policyfree。8设备驱动程序源代码的基本结构/**驱动程序简单说明:*驱动程序的作用:这是一个字符设备驱动程序的基本框架结构*被驱动设备的简单描述:将使用AT91
7、RM9200的PB端口为例进行说明*一些特殊的考虑等:如PB21作为可以产生中断的输入引脚(本例未实现)*版本,创建日期,作者等:1.0版,2006年1月6日,李毅*/#ifndef__KERNEL__#define__KERNEL__#endif#ifndefMODULE#defineMODULE#endif#include#include...#include表明这个模块将用于内核,也可以在编译时通
8、过–D选项指定,如gcc–D__KERNEL__。参见Makefile。内核头文件,需要根据具体驱动程序和用到的内核模块确定。表明这个驱动程序将以模块的方式编译和使用,也可以在编译时通过–D选项指定,如gcc–DMODULE。参见Makefile。9/**驱动程序中使用的各种函数的原型声明。标准的作法是将函数原型声明*放在一个头文件中,然后在该文件开始处使用#include引用,并在该*文件中定义。**这里我们将
此文档下载收益归作者所有