阅读:3808回复:1
【原创】利用windriver开发PCI卡驱动程序
一、开发环境的建立
1)需要安装以下软件: Visual C++→Windows XP DDK→Windriver。 2)安装PCI卡: 关闭计算机,在双手释放完静电(或佩戴防静电手套)的情况下,插装开发板到任何一个PCI的插槽内并固紧; 3)PLX公司也提供了SDK软件(可以到http://www.plxtech.com/products/sdk/下下载) 4)配置系统环境变量(本编译环境为windowsXP+XP_DDK)以便于后续编译,添加DDK的环境变量。(否则编译无法通过) 二、编译过程(以下为我自己编译的PCIe卡为例) 以下介绍windriver编译驱动程序的过程:(注:编译过程在破解版windriver7.00下编译成功,试用版windriver8.01失败!) 1)正确插装开发板后,运行windriver后,在可列出的硬件设备列表中找到开发板:DeviceID 86e1 2)windriver检测到了开发板的I/O和Memory的地址映射信息 3)选择编译驱动的软件平台 4)选择windriver的编译模式(需要选择Kernal Plugin选项来生成核心模式下的驱动程序) 5)windriver会生成一个编译的工程文件,如pex8311.wdp。最后windriver会调用VC来编译驱动程序文件。生成的工程有两个:KP_PEX83(核心模式驱动程序)和pex8311_diag(驱动程序测试控制台工程)。 成功编译后在C:\WinDriver\wizard\my_projects\kermode\objfre_winxp\i386目录下可以找到KP_PEX83.sys,这就是windriver为开发板自动生成的驱动程序。 6)创建INF文件,按向导,填写相应信息后会在C:\WinDriver下生成INF文件如:pex8311.inf。 新建一个文件夹PEX8311,把inf和sys文件拷贝过来并更名为pex8311.inf和pex8311.sys。Windriver生成的inf文件中很多是jungo公司的信息,需要逐一修改为公司的信息。 修改后的pex8311.sys文件如下: ; Generated by Shanghai 3F Electronics Co., Ltd. - http://www.3fmedical.com * ; Installation file (.inf) for "Ultrasound PCIe Interface Board" device ; Copyright (c) 2006 Shanghai 3F Electronics Co., Ltd ; ver0.1 2006/09/28 ; Version Information ; ------------------- [Version] Signature="$CHICAGO$" ; Represents all Windows OSs Provider=%3F% ; You may modify the driver version: DriverVer=09/27/2006, 7.0.0 Class=Interface Board ClassGuid={c671678c-82c1-43f3-d700-0049433e9a4b} ; Driver Information ; ------------------ [Manufacturer] %Mfg%=DeviceList [DeviceList] " Ultrasound PCIe Interface Board " = Install , PCI \ VEN_10B5 & DEV_86E1 & SUBSYS _831110B5 & REV_AA ; Installation Section ; -------------------- [Install] ; Installation script for Windows 98/Me CopyFiles=FilesToCopy AddReg=UpDateRegistry Log_Config=Base1 [Base1] IRQConfig=3,4,5,7,9,10,11,14,15 [Install.NT] ; Installation script for Windows 2000/XP/Server 2003 CopyFiles=FilesToCopy AddReg=UpDateRegistry [FilesToCopy] pex8311.sys ,,,0x40 ; 0x40 == COPYFLG_OVERWRITE_OLDER_ONLY [ClassInstall] ; Register a new class in Windows 98/Me AddReg=UpDateRegistry [ClassInstall32] ; Register a new class in Windows 2000/XP/Server 2003 AddReg=UpDateRegistry [UpDateRegistry] HKR,,,,3F HKR,,Icon,,-5 HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,, pex8311.sys [ControlFlags] ExcludeFromSelect = * ; Remove all devices listed in this INF file from certain user [PreCopySection] HKR,,NoSetupUI,,1 ; Defining WinDriver6 Service ; --------------------------- [Install.NT.Services] Addservice=Ultrasound PCIe Interface Board, 0x00000002, Service_Info [Service_Info] ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\System32\Drivers\pex8311.sys ; Source File Information ; ----------------------- [SourceDisksFiles] pex8311.sys=1 ; This indicates that the pex8311.sys file is located on [SourceDisksNames] 1="Shanghai 3F Electronics Co., Ltd Installation Disk",, [DestinationDirs] DefaultDestDir=10, System32\Drivers ; The location to which the pex8311.sys ;---------------------------------------------------------------; [Strings] 3F="3F Electronics LTD." Mfg="Shanghai 3F Electronics Co., Ltd" 7)修改完INF文件后就可以对开发板的驱动程序进行更新,更新驱动程序后,在设备管理器中可以查看到当前更新后的驱动程序工作状态。(系统会自动在C:\WINDOWS\inf目录下生成一个以oem为头的一个同内容文件,以便日后系统自动完成该硬件设备识别和安装)。 更多内容请参照我的博客: |
|
|
沙发#
发布于:2007-02-05 11:38
8311?PCIE的驱动?
|
|