之前尝试过添加自己的驱动,没有出现问题,所以没太注意。今天添加驱动的时候犯了几个错误,以至于花费了我半天的时间,还以为vs2005坏了呢。记录下来,以防以后犯同样的错误。
下面先介绍一下添加自己的驱动的方法。
创建驱动string:
1、在../WINCE600/PLATFORM/LPC32XX/SRC/DRIVERS下新建一个目录string
2、添加DEF, source, makefile等文件(makefile文件和其他驱动相同)
3、编写驱动程序代码(根据具体功能要求)
4、修改注册表
5、修改dir文件
6、修改BIB文件
7、修改CATALOG文件(根据需要)
8、修改OS工程配置(根据需要)
9、重新编译OS
DEF文件
LIBRARY String
EXPORTS
STR_Init
STR_Deinit
STR_Open
STR_Close
STR_Read
STR_Write
STR_Seek
STR_PowerDown
STR_PowerUp
STR_IOControl
Source文件
TARGETNAME=string
RELEASETYPE=PLATFORM
TARGETTYPE=DYNLINK
DLLENTRY=DllEntryPoint
TARGETLIBS=$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib
SOURCES= string.c
DEFFILE=string.def
PREPROCESSDEFFILE=1
INCLUDES=$(_COMMONDDKROOT)/inc;$(_COMMONOAKROOT)/inc;$(_COMMONSDKROOT)/inc;
../../inc; ../../inc/chip;
修改注册表文件
/WINCE600/PLATFORM/LPC32xx/FILES/platform.reg
在260行添加
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/string]
"Prefix"="STR"
"Dll"="string.dll"
"Order"=dword:0
"Index"=dword:1
修改dirs文件
/WINCE600/PLATFORM/LPC32xx/DRIVERS/下dirs文件
在文件末增加一行
string/
Catalog Item Files(pbcxml文件)(可选)
28行添加:
<BspItemId>Item:NXP:STRING1</BspItemId>
226行添加如下内容:
<Item Id="Item:NXP:STRING1">
<Title>STRING :test driver (port 1)</Title>
<Description>STRING :test driver (port 1)</Description>
<Comment>STRING :test driver </Comment>
<Type>BspSpecific</Type>
<SysgenVariable>BSP_LPC32XX_STRING1</SysgenVariable>
<Variable>CE_MODULES_STRING</Variable>
<SupportedCpuId>Cpu:ARMV4I</SupportedCpuId>
<Module>string.dll</Module>
<Location>Device Drivers/STRING</Location>
<SourceCode>
<Title>$(_WINCEROOT)/PLATFORM/LPC32XX/SRC/DRIVERS/string</Title>
<Path>$(_WINCEROOT)/PLATFORM/LPC32XX/SRC/DRIVERS/string</Path>
</SourceCode>
</Item>
必须重新新建工程才能起效
修改BIB文件
/WINCE500/PLATFORM/LPC32xx/FILES/platform.bib
在109行添加
string.dll $(_FLATRELEASEDIR)/string.dll NK SHK
或者(可选,如果pbcxml文件添加相应的内容)
IF BSP_LPC32XX_STRING1
string.dll $(_FLATRELEASEDIR)/string.dll NK SHK
ENDIF BSP_LPC32XX_STRING1
重新编译OS
如果希望实现在CATALOG中增减相关驱动的支持,需要修改
D:/ProgramFiles/WINCE600/PLATFORM/LPC32XX/CATALOG下的
LPC32XX.pbcxml。
重新编译BSP并下载。
运行后,看串口信息有没有如下信息(没有就表示失败):
– STRINGS: DLL_PROCESS_ATTACH
– STRINGS: STR_Init
今天添加驱动的时候,遇到两个问题:
1、第一次按照上面步骤添加完成后,用VS2005打开工程,Catalog Item View下驱动名称没有路径的下拉菜单,如下图
原因是修改Catalog Item Files(LPC32XX.pbcxml文件)时,路径设置错误.如下图所示
2、在上面错误的基础上,修改了LPC32XX.pbcxml的<BspItemId>Item:NXP:NORFLASH</BspItemId>项,如<BspItemId>NORFLASH:NXP:NORFLASH</BspItemId>,结果导致再次重启vs2005时无法打开Catalog Item View。
修改了问题1之后,就没再看到问题2出现了,可能是问题1引起的吧。