cutedeer
驱动牛犊
驱动牛犊
  • 注册日期2002-04-22
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分316分
  • 威望33点
  • 贡献值0点
  • 好评度31点
  • 原创分0分
  • 专家分0分
阅读:3808回复:1

【原创】利用windriver开发PCI卡驱动程序

楼主#
更多 发布于:2007-01-27 14:36
  一、开发环境的建立
    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为头的一个同内容文件,以便日后系统自动完成该硬件设备识别和安装)。

更多内容请参照我的博客:
blog.sina.com.cn/cutedeer
4241003
驱动牛犊
驱动牛犊
  • 注册日期2006-08-08
  • 最后登录2008-07-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望44点
  • 贡献值0点
  • 好评度38点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-02-05 11:38
8311?PCIE的驱动?
游客

返回顶部