基于Linux平台PCI设备驱动程序设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Linux平台PCI设备驱动程序设计   摘要:首先从FA卡的基本概念及其特点入手,并分析了PCI总线的基本工作原理,最后完成了一个以FA卡为对象设备的简单驱动程序的编写和调试工作。   关键词:FA卡;驱动程序设计;驱动程序检测   中图分类号:TP316文献标识码:A文章编号:1009-3044(2011)09-2078-03   PCI Device Drivers Design Based on Linux Platforms   XIANG Han   (Yunnan Centers for Disease Control and Prevention, Kunming650022, China)   Abstract: Firstly,starts with the basic concepts and characteristics ofFA card;then, it analyzes the basic working principles for PCI bus;at last,a work to program and debug a simple device driver for the FA card is accomplished..   Key words: FA card; device drivers design; device drivers detection   为方便实践,在基于Linux平台上以FA卡作为对象设备,编写一个简单的驱动程序。目的不是为了全面驱动此FA卡,只是将所学内容运用于实际,检验所学的理论知识。   1 FA卡介绍   FA卡全称为Fibre_Adapter,是安装在前端机工作站上的光纤接口适配卡,基于PCI总线,具有从光纤接收和发送数据的功能,它与GW板通过多膜室内光纤互连,并进行半双工通信。   FA卡具有与PCI总线的接口及与光纤的接口,其中与PCI总线的接口采用AMCC公司的S5933实现,与光纤的接口采用HP公司的HDMP-1022、HDMP-1024、HFBR-5305实现。   对FA卡的操作是指:对FA卡寄存器的访问、FA卡中断处理及将FA卡作为主设备进行数据传输。   1.1 访问FA卡寄存器   FA卡上共有三类寄存器,分别为S5933的PCI方寄存器、S5933的Add-On方寄存器和FA板自定义的寄存器。   S5933使用PCI总线提供的五个基址空间(基址空间0―4)。S5933的PCI方寄存器占用基址空间0,Add-On方寄存器占用基址空间1,FA板自定义寄存器占用基址空间2。当设备驱动程序进行I/O寄存器访问时,首先要从PCI配置空间中取得相应空间的基地址空间再与相应的寄存器地址偏移进行相加才能取得真实的I/O地址。   1.2 FA卡的中断   PCI总线提供了四条中断引脚INTA,INTB,INTC,INTD。PCI总线的一个设备只能占用一条中断引脚与一个中断线,并在此设备PCI配置寄存器中指出所选用的中断引脚及中断线。FA卡是PCI总线的单设备卡,与中断引脚INTA相连,FA卡所采用的中断线在系统初始化时由BIOS设置。FA板产生中断的原因可从S5933的“中断控制/状态寄存器”与“FA板状态寄存器”中读出。   1.3 FA卡作为主设备的访问   FA卡作为主设备访问寄存器时,要求存储器地址双字节对界且物理地址连续。填入S5933中的主设备读/写地址寄存器中的地址必须为物理地址,主设备读/写传送量以字节为单位。   2 驱动程序设计   要为FA卡编写一个功能完备的驱动程序并非一件易事,因此只编写了一个功能较简单的驱动程序,涉及到文件操作中的五项方法,即open、release、write、read和ioctl。驱动程序如下。   #define MODULE   #include   #include   #include   #include amcc.h //与S5933有关的头文件   unsigned short xm_vendor_id=0x7065;//FA卡的vendor_id为7065   unsigned short xm_device_id=0x7379;//FA卡的device_id为7379   unsigned int fa_major=244;//主设备号为244   unsigned int fa_minor=0;//次设备号为0   static int fa_open (struct inode *inode,struct file *filp)   {   MOD_INC_USE_COUNT;   print

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档