加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

利用windriver开发PCI卡驱动程序

(2006-10-13 14:24:37)
分类: 工程技术类

利用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的环境变量。(否则编译无法通过)

利用windriver开发PCI卡驱动程序
二、编译过程(以下为我自己编译的PCIe卡为例)
    以下介绍windriver编译驱动程序的过程:(注:编译过程在破解版windriver7.00下编译成功,试用版windriver8.01失败!)
    1)正确插装开发板后,运行windriver后,在可列出的硬件设备列表中找到开发板:DeviceID 86e1

利用windriver开发PCI卡驱动程序
    2)windriver检测到了开发板的I/O和Memory的地址映射信息

利用windriver开发PCI卡驱动程序
    3)选择编译驱动的软件平台

利用windriver开发PCI卡驱动程序
    4)选择windriver的编译模式(需要选择Kernal Plugin选项来生成核心模式下的驱动程序)


   利用windriver开发PCI卡驱动程序

    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。

利用windriver开发PCI卡驱动程序
    新建一个文件夹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为头的一个同内容文件,以便日后系统自动完成该硬件设备识别和安装)。

利用windriver开发PCI卡驱动程序

利用windriver开发PCI卡驱动程序
三、PLX SDK调试开发板
    重新安装PLX SDK的驱动,重新启动计算机后即可运行PLXMon,并可使用其所有功能,其中最重要的如下图所示,为各种寄存器数值查看功能、EERPOM在线烧写功能。(在此情况下,windriver的驱动暂时失效,需要重新安装重启后有效)。同时,该SDK提供了强大的测试功能,如DMA的本地到PCI和PCI到本地的数据传输测试,以及直从/直主模式下对内存映射空间的数据传输测试。

利用windriver开发PCI卡驱动程序

   利用windriver调试开发板将在其它的文章单独介绍:)

    后记:安装windriver8.01后,编译初时命令为:ddk_make.bat amd64 free ..\..,这时无法正常编译,改为winxp后编译通过。ddk_make.bat批处理文件在WinDriver\util目录下,具体的批处理过程可以查看,从中看出amd64和winxp的编译开关的区别。

利用windriver开发PCI卡驱动程序

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有