wince -- 驱动程序的编写规范
2011-08-08 23:17
323 查看
1.实现一个动态库,其中实现以下函数:
DWORD xxx_Init( LPCTSTR pContext, LPCVOID lpvBusContext);
DWORD xxx_Deinit( DWORD hDeviceContext );
DWORD xxx_Open(DWORD hDeviceContext,DWORD dwAccess, DWORD dwShareMode);
DWORD xxx_Close( DWORD hDeviceContext );
void XXX_PowerUp( DWORD hDeviceContext );
void XXX_PowerDown(DWORD hDeviceContext );
DWORD xxx_IOControl(
DWORD hDeviceContext,
DWORD dwCode,
PBYTE pBufIn,
DWORD dwLenIn,
PBYTE pBufOut,
DWORD dwLenOut,
PDWORD pdwActualOut
);
2.在注册表中添加如下项目。(一般放在Platform.reg)
[HKEY_LOCAL_MACHINEDriversBuiltInSampleDev]
"Prefix"="XXX"
"Dll"="MyDev.Dll"
"Order"=dword:1
3.在BIB文件中添加项目,将所用到的文件加入BIN文件(一般放在Platform.bib)。
MyDev.dll $(_FLATRELEASEDIR)MyDev.dll NK SH
注:
SampleDev为任意与其它项目不重名的字符串.
每个函数名的前缀XXX可以是任意大写的字符串,只要保证与注册表中Prefix后面的值相同就行。
现在,已经知道了需要实现那些东西,那你一定急不可待,想知道如何去实现它。好了,一个最直接的方法,在platform/your CPU’s folder/drivers 下新建一个目录,然后在drivers目录中的dirs文件中加入以你刚新建的目录名。
在刚新建的目录下,新建你的C源代码文件,在其中实现上面所述的函数,及其功能。新建名称分别为sources, makefile, mydev.def的文件。其内容如下:
makefile: 只需要这样一行
!INCLUDE $(_MAKEENVROOT)makefile.def
mydriver.def文件定义需要输出的函数,这些函数能够被其它代码用动态加载的方法调用。格式:
LIBRARY MyDev(这个字符串要和将要生成的动态库的文件名一样)
EXPORTS
XXX_Init
XXX_Deinit
XXX_Open
XXX_Close
XXX_PowerOff
XXX_Power_Down
XXX_IOControl
Sources:这个文件很重要,内容也多,最基本的一个文件该有如下内容。
TARGETNAME=MyDev(指定要生成的动态库的名称)
TARGETTYPE=DYNLINK(指定要生成的是一个动态库)
(下面两项指定需要与哪些动态库链接,一般要第一项就足够了)
TARGETLIBS=$(_COMMONSDKROOT)lib$(_CPUINDPATH)coredll.lib
$(_COMMONOAKROOT)lib$(_CPUINDPATH)ceddk.lib
DEFFILE=MyDev.def (指定def文件)
DLLENTRY=DllEntry(指定动态库的入口函数)
SOURCES=(请在这写上你所有源文件的名字,它们将会被编译)
DWORD xxx_Init( LPCTSTR pContext, LPCVOID lpvBusContext);
DWORD xxx_Deinit( DWORD hDeviceContext );
DWORD xxx_Open(DWORD hDeviceContext,DWORD dwAccess, DWORD dwShareMode);
DWORD xxx_Close( DWORD hDeviceContext );
void XXX_PowerUp( DWORD hDeviceContext );
void XXX_PowerDown(DWORD hDeviceContext );
DWORD xxx_IOControl(
DWORD hDeviceContext,
DWORD dwCode,
PBYTE pBufIn,
DWORD dwLenIn,
PBYTE pBufOut,
DWORD dwLenOut,
PDWORD pdwActualOut
);
2.在注册表中添加如下项目。(一般放在Platform.reg)
[HKEY_LOCAL_MACHINEDriversBuiltInSampleDev]
"Prefix"="XXX"
"Dll"="MyDev.Dll"
"Order"=dword:1
3.在BIB文件中添加项目,将所用到的文件加入BIN文件(一般放在Platform.bib)。
MyDev.dll $(_FLATRELEASEDIR)MyDev.dll NK SH
注:
SampleDev为任意与其它项目不重名的字符串.
每个函数名的前缀XXX可以是任意大写的字符串,只要保证与注册表中Prefix后面的值相同就行。
现在,已经知道了需要实现那些东西,那你一定急不可待,想知道如何去实现它。好了,一个最直接的方法,在platform/your CPU’s folder/drivers 下新建一个目录,然后在drivers目录中的dirs文件中加入以你刚新建的目录名。
在刚新建的目录下,新建你的C源代码文件,在其中实现上面所述的函数,及其功能。新建名称分别为sources, makefile, mydev.def的文件。其内容如下:
makefile: 只需要这样一行
!INCLUDE $(_MAKEENVROOT)makefile.def
mydriver.def文件定义需要输出的函数,这些函数能够被其它代码用动态加载的方法调用。格式:
LIBRARY MyDev(这个字符串要和将要生成的动态库的文件名一样)
EXPORTS
XXX_Init
XXX_Deinit
XXX_Open
XXX_Close
XXX_PowerOff
XXX_Power_Down
XXX_IOControl
Sources:这个文件很重要,内容也多,最基本的一个文件该有如下内容。
TARGETNAME=MyDev(指定要生成的动态库的名称)
TARGETTYPE=DYNLINK(指定要生成的是一个动态库)
(下面两项指定需要与哪些动态库链接,一般要第一项就足够了)
TARGETLIBS=$(_COMMONSDKROOT)lib$(_CPUINDPATH)coredll.lib
$(_COMMONOAKROOT)lib$(_CPUINDPATH)ceddk.lib
DEFFILE=MyDev.def (指定def文件)
DLLENTRY=DllEntry(指定动态库的入口函数)
SOURCES=(请在这写上你所有源文件的名字,它们将会被编译)
相关文章推荐
- WinCE的LCD驱动程序编写指南
- WinCE的LCD驱动程序编写指南
- WinCE的LCD驱动程序编写指南
- WinCE的LCD驱动程序编写指南
- WinCE的LCD驱动程序编写指南
- WinCE的LCD驱动程序编写指南
- WinCE的LCD驱动程序编写指南
- WinCE的LCD驱动程序编写指南
- 华虹USB-KEY for WinCE.NET驱动程序的编写
- wince 的GPIO口的简单流驱动的编写规范
- WinCE的LCD驱动程序编写指南
- WinCE的LCD驱动程序编写指南
- LED&KEYPAD驱动程序编写实验
- 硬件语言编写规范与技巧
- Android系统篇之----编写简单的驱动程序并且将其编译到内核源码中
- 【转帖】使用 C++ 编写内核模式驱动程序的优点与缺点
- css编写规范:如何合并组合类和嵌套类
- 网卡驱动程序之编写虚拟网卡(二)
- 在基于ZedBoard的Linux系统下添加自定义硬件IP(4) ——驱动程序和应用程序编写
- WinCE驱动程序的分类