WinDriver驱动程序开发入门教程
Windriver是jungo公司的一款高效易用的驱动开发软件,方便用户基于此开发自己的驱动程序,而不需要对windows DDK作深入的研究。
Windriver相比driverstudio使用起来更为方便,同时,它支持windows、Linux、Vxworks、winCE、Solaris等OS,对于当前流行的硬件设备,如:端口、ISA、PCI(-X, -E)、PCMCIA、USB等都有很好的支持。作为驱动开发的入门工具,windriver是很好的选择。
Include目录里就是最通用的包含文件;
Lib目录则是重要的api函数库文件;
Redist目录下是windriver的缺省驱动程序和DLL;
Docs就是windriver的各种手册,看这个绝对受益匪浅,而且也是正道。
下面进行驱动程序开发的简单操作示范:
(1)首先需要使用DriverWizard生成驱动程序代码。
在Windows操作系统中,你需要创建并安装INF文件来注册USB设备以便使用WinDriver,若你没有执行过此操作,DriverWizard会提示你需要安装INF文件。
当你在 Windows环境下使用DriverWizard,你可以点选自动安装INF文件,执行步骤为在DriverWizard生成的生 INF 对话窗口中选择「Automatically Install the INF file」。若此步骤执行失败时,DriverWizard会提供你下载安装下载指示。
(2)之后,便可选择开启你的硬件设备,生成驱动程序代码。
可以先使用Add access register设置好你要操作的寄存器的偏移地址、位宽和读/写,设置好之后,在生成驱动程序代码时工具会帮助生成相应的函数,方便程序的开发。
例如:
// Function: DDC_ReadRXR()
// Read from RXR register.
// Parameters:
// hDev [in] handle to the card as received from DDC_DeviceOpen().
// Return Value:
// The value read from the register.
BYTE DDC_ReadRXR (WDC_DEVICE_HANDLE hDev)
{
BYTE data;
WDC_ReadAddr8(hDev, DDC_RXR_SPACE, DDC_RXR_OFFSET, &data);
printf("%x\t",data);
return data;
}
上述读DDC_ReadRXR的函数就是由工具生成的。
(3)生成代码
通过Generate Code的图标或者从Project | Generate Code菜单选项中选择生成代码。
点next。
这样就完成了驱动程序代码的生成,那么就可以开始你第一个驱动程序的开发了。工程文件在x86文件夹中。
在编写好自己的驱动后,可以先使用调试工具调一下,我写了一个比较简单的驱动程序,就是读取128 byte DEID数据,很容易就把数据读出来了。
此教程仅作为一个入门的教程,开发过程中容易遇到的问题和一些比较坑的地方,后续会慢慢更新。好了,开始你的windriver驱动程序开发吧。