linux下pci设备驱动开发方法及应用实例54144

linux下pci设备驱动开发方法及应用实例54144

ID:34449796

大小:164.08 KB

页数:3页

时间:2019-03-06

linux下pci设备驱动开发方法及应用实例54144_第1页
linux下pci设备驱动开发方法及应用实例54144_第2页
linux下pci设备驱动开发方法及应用实例54144_第3页
资源描述:

《linux下pci设备驱动开发方法及应用实例54144》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件天地中文核心期刊《微计算机信息》(测控自动化)2007年第23卷第4-1期文章编号:1008-0570(2007)04-1-0310-03Linux下PCI设备驱动开发方法及应用实例MethodandImplementationofPCIDeviceDriverBasedonLinux(空军工程大学)高翊宇马林华GAOYIYUMALINHUA摘要:Linux是一种日趋成熟完善的操作系统.越来越多的软硬件厂商开始使用Linux平台来开发自己的产品,因而对基于该平台的设备驱动程序的需求也愈来愈多。同时PCI总线作为一个具有兼容性强、平台无关性等特点从的计算机总线标

2、准。日前得到了广泛的应用。本文通过实例讨论了如何在Linux下实现PCI设备驱动程序的开发。关键词:Linux操作系统;雷达信号采集系统;设备驱动;PCI总线中图分类号:TP316文献标识码:BAbstract:WiththedevelopmentofLinux,therearemoreandmorecompaniestodeveloptheirproductionsunderLinuxoperationsys-tem.Sotherearemoreandmorerequirementstodevelopthedevicesdriverforhardwareunde

3、rLinuxOS.Withthegoodpropertiesforexamplethegoodcompatibility,andthegoodusabilityunderdifferentoperationsystems.PCIbushasgetabroadapplicationat技present.ThisarticlediscusseshowtocompleteaPCIDeviceDriverunderLinuxOS.Keywords:LinuxOS,RadarSignalCollectingSystem,DeviceDriver,PCIBus术内核的源文件。

4、它使用函数drive_init来对驱动程序进行初始引言创化,自动驱动对应的设备;另一种方法是将驱动程序编译成可PCI总线是由Intel公司发起,由PCISIG小组审议并推广安装模块(module),动态地加载和卸载模块。可安装模块是经过新实施的总线标准。PCI支持一种称为线性突发的数据传输模式,编译但尚未连接的目标代码文件,可以在系统运行时动态地可确保总线不断满载数据。PCI总线通过CPU局部总线到PCI“安装”到内核中,由系统超级用户使用insmod命令动态加载,总线的桥接器形成一种独特的中间缓冲器设计方式,将CPU使之成为系统内核的一部分。它使用函数init_

5、module来对驱动系统与外围设备分开,使得在开发PCI设备时不需要考虑CPU程序进行初始化。当不使用该设备时,可以使用rmmod命令,的差异,也不需要关心CPU升级换代所带来的问题。其“优秀”rmmod命令调用系统调用delete_module,这个系统调用随后检表现赢得越来越多的计算机应用开发者的青睐,设计者们在多查模块的使用计数,如果为0则调用模块本身的cleanup_mod-种平台和体系结构中采用不同的方法设计出各种PCI接口卡,ule函数从内核中将该驱动程序卸载,否则返回出错信息。编写出各种平台下的接口卡驱动程序实现控制系统高速、高精1.3设备驱动程序接

6、口度、低功耗下通过PCI总线对外围I/O设备的操作。Linux中的I/O子系统向内核中的其他部分提供了一个统一的标准设备接口,这是通过include/linux/fs.h中的数据结构1Linux设备驱动程序初步原理file_operations来完成的。该数据结构向Linux操作系统注册一1.1设备文件组文件操作。这些文件操作定义了设备提供的特定功能,诸如Linux将所有外部设备看成是一类特殊文件,称之为“设备应用程序对设备文件进行open、close、read、write等操作时,Lin-文件”。在Linux操作系统下有两类主要的设备文件:一类是字ux内核将通过

7、file_operations结构访问驱动程序提供的函数。符设备,另一类则是块设备。字符设备是以字节为单位逐个进1.4设备驱动程序结构行I/O操作的设备。块设备则是利用一块系统内存作为缓冲区,Linux的设备驱动程序大致可以分为如下几个部分:驱动程当用户进程对设备进行读写请求时,驱动程序先查看缓冲区中序的注册与注销、设备的打开与释放、设备的读写操作、设备的的内容,如果缓冲区中的数据能满足用户的要求就返回相应的控制操作、设备的中断和轮询处理。驱动程序的注册是通过内数据,否则就调用相应的请求函数来进行实际的I/O操作。一般核函数register_chrdev()或者r

8、egist

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

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

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