全部博文(90)
分类: WINDOWS
2009-08-21 12:37:25
这里以micro2440的看门狗watchdog为例:
1、smdk2440\drivers目录下建立WDGdriver,在该目录创建以下几个文件:
(1)makefile
!INCLUDE $(_MAKEENVROOT)\makefile.def
(2)WDGdriver.def
LIBRARY WDGdriver
EXPORTS
WDG_Init
WDG_Deinit
WDG_Open
WDG_Close
WDG_Read
WDG_Write
WDG_PowerDown
WDG_PowerUp
WDG_IOControl
WDG_Seek
说明:exports主要是导出在书写看门狗时,底层内核API函数的声明
(三)source
PREPROCESSDEFFILE=1
DEFFILE=WDGdriver.def
RELEASETYPE=PLATFORM
TARGETDEFNAME=WDGdriver
TARGETNAME=WDGdriver
TARGETTYPE=DYNLINK
DLLENTRY=DllEntry
INCLUDES=\
$(_TARGETPLATROOT)\inc; \
$(_COMMONOAKROOT)\inc; \
$(_PUBLICROOT)\common\oak\inc;$(_PUBLICROOT)\common\sdk\inc;$(_PUBLICROOT)\common\ddk\inc; \
..\..\inc
TARGETLIBS= \
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
CDEFINES=$(CDEFINES) -watchdog
SOURCES = \
WDGdriver.cpp \
说明:
以上红色部分是对应在WDGdriver目录下的文件名及文件名加它的扩展名,当然里头还有编译选项,链接头文件,以及库文件,以后在书写像此类驱动代码时,对于source文件来说,可以把上头做为一个模板。
2、在配置文件platform.bib中加入以下内容:
;WDGdriver 解析说明
WDGdriver.dll $(_FLATRELEASEDIR)\WDGdriver.dll NK SH
其中platform.bib 及以下第三点的platform.reg文件都是在:
Wince500\platform\smdk2440\files目录下找到的
3、在注册表文件platform.reg加入以下内容:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\WDGdriver]
"Prefix"="WDG"
"Dll"="WDGdriver.dll"
说明:
第一条语句:[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\WDGdriver]
WDGdriver 要对应以上在第1点时,所创建的驱动目录名
第二条语句:"Prefix"="WDG"
WDG 表示设备驱动名称,也就是在书写应用程序运用creatfile函数,打开的文件名就是WDG1,要记得在后头加个1,这是在wince下面为了区分多个看门狗驱动时的索引区分。
第三条语句:WDGdriver.dll
表示Dll文件,就是叫做WDGdriver.dll,而这个文件在platform.bib文件中已经被建立了。
4、在platform/BSP/drivers 目录下的dirs文件,加入WDGdriver,否则会无法复制WDGdriver.dll