wince下添加自己的流接口驱动
2009-11-02 11:37
357 查看
前天做一个IO驱动。驱动倒是简单,但也算摸清点wince下流接口驱动的加载及卸载。非常感谢C151151的帮助。其实C151151已经做了很详细的说明了。现转载如下:
二种方法加驱动--->NK.bin
方法一:
1. dll文件放到 C:/WINCE500/PLATFORM/AT4X0BD/FILES目录中.
2. platform.reg
;----------------------------------------------------------------------------
;MyDriver.dll //20080305
;----------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
"Prefix"="STR"
"Dll"="MyDriver.dll"
"Order"=dword:1
3. platform.bib
;------------------------------------------------------
;MyDriver.dll //20080305
;------------------------------------------------------
MyDriver.dll $(_FLATRELEASEDIR)/MyDriver.dll NK SH
调用方法:
HANDLE hStr=CreateFile(TEXT("STR1:"), GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
if (INVALID_HANDLE_VALUE == hStr)
{
::MessageBox(NULL, _T("Cannot open STR1:"), _T("StringApp"), MB_OK);
return;
}
// Write a string to the driver.
DWORD dwWritten = 0;
WCHAR* pString = TEXT("This is a test of the String Driver. This is o-nly a test");
WriteFile(hStr, pString, (_tcslen(pString)+1), &dwWritten, NULL);
// Read string from driver.
WCHAR wch[BUFFER_SIZE];
DWORD dwBytesRead = BUFFER_SIZE;
memset(&wch, '/0', BUFFER_SIZE * sizeof(WCHAR));
ReadFile(hStr, wch, sizeof(wch), &dwBytesRead, NULL);
::MessageBox(NULL, wch, TEXT("StringApp"), MB_OK);
// Disconnect from driver.
CloseHandle(hStr);
方法二:
为了让CEPB Debug代码.
1. 在platform/CPU's folder/drivers 下新建一个目录,然后在drivers目录中的dirs文件中加入以你刚 新建的目录名.
2. 在刚新建的目录下,新建你的C源代码文件,在其中实现上面所述的函数,及其功能。
新建名称分别为sources, makefile, mydev.def的文件。
(1)
makefile: 只需要这样一行
!INCLUDE $(_MAKEENVROOT)/makefile.def
(2)
mydriver.def
LIBRARY MyDev(这个字符串要和将要生成的动态库的文件名一样)
EXPORTS
XXX_Init
XXX_Deinit
XXX_Open
XXX_Close
XXX_PowerOff
XXX_Power_Down
XXX_IOControl
(3)
Sources:
TARGETNAME=MyDev (指定要生成的动态库的名称)
TARGETTYPE=DYNLINK (指定要生成的是一个动态库)
(下面两项指定需要与哪些动态库链接, 一般要第一项就足够了)
TARGETLIBS=$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /
$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib
DEFFILE=MyDev.def (指定def文件)
DLLENTRY=DllEntry (指定动态库的入口函数)
SOURCES= (请在这写上你所有源文件的名字,它们将会被编译)
//也必须修改.bib, .reg等文件,这样系统才能调用.
(4) platform.reg
;----------------------------------------------------------------------------
;MyDriver.dll //20080305
;----------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
"Prefix"="STR"
"Dll"="MyDriver.dll"
"Order"=dword:1
(5) platform.bib
;------------------------------------------------------
;MyDriver.dll //20080305
;------------------------------------------------------
MyDriver.dll $(_FLATRELEASEDIR)/MyDriver.dll NK SH
二种方法加驱动--->NK.bin
方法一:
1. dll文件放到 C:/WINCE500/PLATFORM/AT4X0BD/FILES目录中.
2. platform.reg
;----------------------------------------------------------------------------
;MyDriver.dll //20080305
;----------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
"Prefix"="STR"
"Dll"="MyDriver.dll"
"Order"=dword:1
3. platform.bib
;------------------------------------------------------
;MyDriver.dll //20080305
;------------------------------------------------------
MyDriver.dll $(_FLATRELEASEDIR)/MyDriver.dll NK SH
调用方法:
HANDLE hStr=CreateFile(TEXT("STR1:"), GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
if (INVALID_HANDLE_VALUE == hStr)
{
::MessageBox(NULL, _T("Cannot open STR1:"), _T("StringApp"), MB_OK);
return;
}
// Write a string to the driver.
DWORD dwWritten = 0;
WCHAR* pString = TEXT("This is a test of the String Driver. This is o-nly a test");
WriteFile(hStr, pString, (_tcslen(pString)+1), &dwWritten, NULL);
// Read string from driver.
WCHAR wch[BUFFER_SIZE];
DWORD dwBytesRead = BUFFER_SIZE;
memset(&wch, '/0', BUFFER_SIZE * sizeof(WCHAR));
ReadFile(hStr, wch, sizeof(wch), &dwBytesRead, NULL);
::MessageBox(NULL, wch, TEXT("StringApp"), MB_OK);
// Disconnect from driver.
CloseHandle(hStr);
方法二:
为了让CEPB Debug代码.
1. 在platform/CPU's folder/drivers 下新建一个目录,然后在drivers目录中的dirs文件中加入以你刚 新建的目录名.
2. 在刚新建的目录下,新建你的C源代码文件,在其中实现上面所述的函数,及其功能。
新建名称分别为sources, makefile, mydev.def的文件。
(1)
makefile: 只需要这样一行
!INCLUDE $(_MAKEENVROOT)/makefile.def
(2)
mydriver.def
LIBRARY MyDev(这个字符串要和将要生成的动态库的文件名一样)
EXPORTS
XXX_Init
XXX_Deinit
XXX_Open
XXX_Close
XXX_PowerOff
XXX_Power_Down
XXX_IOControl
(3)
Sources:
TARGETNAME=MyDev (指定要生成的动态库的名称)
TARGETTYPE=DYNLINK (指定要生成的是一个动态库)
(下面两项指定需要与哪些动态库链接, 一般要第一项就足够了)
TARGETLIBS=$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /
$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib
DEFFILE=MyDev.def (指定def文件)
DLLENTRY=DllEntry (指定动态库的入口函数)
SOURCES= (请在这写上你所有源文件的名字,它们将会被编译)
//也必须修改.bib, .reg等文件,这样系统才能调用.
(4) platform.reg
;----------------------------------------------------------------------------
;MyDriver.dll //20080305
;----------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
"Prefix"="STR"
"Dll"="MyDriver.dll"
"Order"=dword:1
(5) platform.bib
;------------------------------------------------------
;MyDriver.dll //20080305
;------------------------------------------------------
MyDriver.dll $(_FLATRELEASEDIR)/MyDriver.dll NK SH
相关文章推荐
- WINCE--流设备驱动简介及往BSP添加
- WINCE下IIC接口FLASH驱动
- 在Wince的Catalog中添加驱动组件
- S3C2440的camera接口特性及WinCE 下的驱动
- wince 触摸和audio驱动中添加postmessage
- 介绍一种wince 6.0 如何添加 640*480液晶驱动的好方法
- WinCE中串口驱动及接口函数介绍(转)
- 扩展微软DDK中的NDIS IM驱动的功能:添加一个DeviceIoControl接口
- WinCE中串口驱动及接口函数介绍(转载)
- 在Wince的Catalog中添加驱动组件
- S3C2440的camera接口特性及WinCE 下的驱动
- S3C2440的camera接口特性及WinCE 下的驱动
- PXA270处理器PCMCIA/CF接口设计及WinCE 5.0驱动实现 ----eetchina.com
- android中添加自己的驱动
- 如何在wince下添加和删除驱动(作者:wogoyixikexie@gliet)
- WinCE中串口驱动及接口函数介绍
- 转:S3C2440的camera接口特性及WinCE 下的驱动(1)
- WinCE中串口驱动及接口函数介绍
- 如何在Linux下添加自己的驱动
- 自己写的粗糙的Excel数据驱动Http接口测试框架(一)