WinDriver驱动程序框架
来源:互联网 发布:linux ant安装路径 编辑:程序博客网 时间:2024/05/17 03:18
以下是最近的收获。
一般来说,驱动程序的结构如下所示:
a、 打开WinDriver设备;
b、 查找要访问的PCI设备;
c、 枚举该设备的资源(内存、I/O、中断);
d、 锁定该设备的资源;
e、 访问插卡上的资源(读写内存、读写I/O、响应中断);
f、 解锁资源;
g、 关闭WinDriver设备。
以下是一段使用WinDriver开发的PLX9050的驱动代码,从中可以看出
WinDriver驱动程序的框架结构,只要对其稍作修改就可作为其他PCI卡
的一部分。程序中没有给出变量说明,具体说明请查阅WinDriver的设计
文档。
hWD=WD_open();//打开WinDriver设备,得到一个文件句柄;
Pciscan..searchId.dwVenderId=0x10b5;//PLX公司供货号;
Pciscan..searchId.dwDeviceId=0x9050;//PXL9050的设备号;
WD_PCIScanCards(hWD,&Pciscan)//检测PCI插槽上的设备;
PciSlot=Pciscan.cardslot[0];//将插卡的地址传递给变量PCICardInfo来
PCICardInfo.pcislot=PciSlot;//检测卡上的资源信息;
WD_PciGetCardInfo(hWD,&PciCardInfo);//检测卡上的资源信息;
Card=PciCardInfo.card;
Cardreg.card=Card;
WD_CardRegister(hWD,&Cardreg);//向系统登记检测到的资源信息;
Item=Card.Item[0];//将卡上的0号资源赋给变量Item;
If (Item.item==ITEM_MEMORY)
RegAddress=Item.I.Mem.dwTrans.Addr;//得到PCI卡上的内存映射到用户态的地址;
Trans.dwport=RegAddress;
Trans.CmdTrans=RM_B;//设为内存字节读命令;
Trans.fAutoinc=True;
WD_Transfer(hWD,&Trans)//进行数据传递;
WD_CardUnregister(hWD,&Cardreg)//释放注册到的资源;
WD_Close(hWD)//关闭WinDriver设备
- WinDriver驱动程序框架
- windriver下pcmcia驱动程序编写的疑问
- 基于WinDriver的驱动程序的开发
- 利用WinDriver开发PCI设备驱动程序
- 利用WinDriver开发PCI设备驱动程序
- 利用WinDriver开发PCI设备驱动程序
- Windriver生成cpci驱动程序知识点简单讲解
- Windriver生成cpci驱动程序知识点简单讲解
- WinDriver
- Q:请问WinDriver驱动程序开发工具支持哪些芯片?
- Q:请问WinDriver生成的驱动程序是否会包含源代码?
- Q : 请问利用WinDriver驱动程序开发工具是否会改变驱动程序的效能性?
- Linux驱动程序入门-----------------------------驱动程序框架
- Q:请问WinDriver是否可以开发Character Device或Block Device的驱动程序呢?
- Q:请问欲PDA设备的驱动程序,是否亦可使用WinDriver驱动程序开发工具进行开发?
- Q:我已经购买过WinDriver,最近欲使用另一部新计算机撰写驱动程序,但却无法正常操作WinDriver,请问如何解决?
- Linux驱动程序框架
- 25.2 USB驱动程序框架
- mysql中编码的设置
- Linux Platform Device and Driver
- 人生有三件事不可俭省
- 如何解决系统补丁VS2008 SP1(KB971092)重复安装问题
- 美国互联网公司为何在中国水土不服?
- WinDriver驱动程序框架
- 期待新译作
- 迷路
- 户外迷路指南
- PHP整合FCKeditor
- js如何保存、获取、删除cookie
- 学习iphone - address book recorder
- iphone-file
- 中小企业IT外包服务发展