linux驱动程序编写.ppt

linux驱动程序编写.ppt

ID:48055549

大小:394.50 KB

页数:46页

时间:2020-01-13

linux驱动程序编写.ppt_第1页
linux驱动程序编写.ppt_第2页
linux驱动程序编写.ppt_第3页
linux驱动程序编写.ppt_第4页
linux驱动程序编写.ppt_第5页
资源描述:

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

1、ARM驱动程序介绍什么是驱动驱使硬件设备行动驱动程序在Linux内核里扮演着特殊的角色。它们是截然不同的"黑盒子",使硬件的特殊的一部分响应定义好的内部编程接口。它们完全隐藏了设备工作的细节.用户的活动通过一套标准化的调用来进行,这些调用与特别的驱动是独立的;设备驱动的角色就是将这些调用映射到作用于实际硬件的和设备相关的操作上。这个编程接口是这样,驱动可以与内核的其他部分分开建立,并在需要的时候在运行时"插入"。设备驱动程序的用设备驱动程序将复杂的硬件抽象成一个结构良好的设备,并通过提供统一的程序接口为系统

2、的其它部分提供使用设备的能力和方法。设备驱动程序为系统的其它部分提供各种使用设备的能力,使用设备的方法应该由应用程序决定。设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。驱动程序系统界面硬件硬件硬件硬件硬件操作系统应用程序设备驱动程序的作用Linux下对外设的访问只能通过驱动程序。Linux对于驱动程序有统一的接口,以文件的形式定义系统的驱动程序:Open、Release、

3、read、write、ioctl…驱动程序是内核的一部分,可以使用中断、DMA等操作驱动程序需要在用户态和内核态之间传递数据在操作系统中的位置设备驱动程序是内核代码的一部分。驱动程序的地址空间是内核的地址空间。驱动程序的代码直接对设备硬件(实际是设备的各种寄存器)进行控制(实际就是读写操作)。应用程序通过操作系统的系统调用执行相应的驱动程序函数。中断则直接执行相应的中断程序代码。设备驱动程序的file_operations结构体的地址被注册到内核中的设备链表中。块设备和字符设备以设备文件的方式建立在文件系统

4、中的/dev目录下,而且每个设备都有一个主设备号和一个次设备号。驱动程序与应用程序的区别应用程序一般有一个main函数,从头到尾执行一个任务;驱动程序却不同,它没有main函数,通过使用宏module_init(初始化函数名);将初始化函数加入内核全局初始化函数列表中,在内核初始化时执行驱动的初始化函数,从而完成驱动的初始化和注册,之后驱动便停止等待被应用软件调用。驱动程序中有一个宏moudule_exit(退出处理函数名)注册退出处理函数。它在驱动退出时被调用。应用程序可以和GLIBC库连接,因此可以包含

5、标准的头文件,比如。在驱动程序中是不能使用标准C库的,因此不能调用所有的C库函数,比如输出打印函数只能使用内核的printk函数,包含的头文件只能是内核的头文件,比如。驱动程序与应用程序的区别驱动程序与应用程序的区别应用程序是一个进程驱动程序是一系列内核函数编程从主函数main()开始主函数main()返回即是进程结束驱动程序向内核添加了一些函数,是内核的一部分这些函数由内核在适当的时候调用这些函数可以完成硬件访问等操作驱动设备分类字符设

6、备驱动(重点)网络接口驱动块设备驱动字符设备字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备,这样的驱动通常实现open、close、read和write系统调用块设备在大多数UNIX系统,块设备不能按字节处理数据,只能一次传送一个或多个长度是512字节(或一个更大的2次幂的数)的整块数据。Linux则允许块设备传送任意数目的字节。因此,块和字符设备的区别仅仅是驱动与内核的接口不同。网络接口任何网络事务都通过一个接口来进行,一个接口通常是一个硬件设备(eth0),但是也可以是一个纯粹的软件设备,

7、如回环接口(lo)。一个网络接口负责发送和接受数据报文。驱动程序的安装模块方式直接编译进内核直接编译到内核,再运行新的内核来测试;编译为模块的形式,单独加载运行调试。第一种方法效率较低,但在某些场合是唯一的方法。模块方式调试效率很高,它使用insmod工具将编译的模块直接插入内核,如果出现故障,可以使用rmmod从内核中卸载模块。不需要重新启动内核,这使驱动调试效率大大提高。驱动程序的使用字符设备设备号创建设备文件设备注册重要数据结构设备操作主次设备号字符设备通过字符设备文件来存取。字符设备文件由使用ls-

8、l的输出的第一列的“c”标识。如果使用ls-l命令,会看到在设备文件项中有2个数(由一个逗号隔开)这些数字就是设备文件的主次设备编号。设备号作用主设备号用来标识与设备文件相连的驱动程序。次设备号被驱动程序用来辨别操作的是哪个设备。****主设备号用来反映设备类型********次设备号用来区分同类型的设备****主次设备号如何描述设备号dev_t其实质为unsignedint32位整数,其中高12位为主设备号,低

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

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

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