Window CE 6.0流驱动开发动态加载实验
?
所需硬件:開發(fā)板ok6410,
所需軟件:vs2005,wince6.0
實(shí)驗(yàn)步驟:
第一大步:
1. 在相應(yīng)的文件夾先新建幾個(gè)必須的文件,需要注意的是,下面幾個(gè)文件均是文本文件,根據(jù)需要更改后綴,makefile和sources沒有后綴。Obj和build.log是編譯自動(dòng)生成的文件,不用管它!
?
也可以復(fù)制D:\WINCE600\PLATFORM\SMDK6410\SRC\DRIVERS\LED下的文件自行修改
?
2. 下面分別打開相應(yīng)文件,并填寫內(nèi)容:
1)SLED.def中填入:
;******************************************************************************
LIBRARY????????? SLED
?
EXPORTS?????? ?SPL_Init??
??????????????? SPL_Deinit??
??????????????? SPL_Open??
??????????????? SPL_Close??
??????????????? SPL_Read??
??????????????? SPL_Write??
??????????????? SPL_Seek??
??????????????? SPL_PowerDown??
??????????????? SPL_PowerUp??
??????????????? SPL_IOControl
2)makefile填入:
!INCLUDE $(_MAKEENVROOT)\makefile.def
3)sources填入:
!if 0
Copyright (c) Microsoft Corporation.? All rights reserved.
!endif
!if 0
Use of this source code is subject to theterms of the Microsoft end-user
license agreement (EULA) under which youlicensed this SOFTWARE PRODUCT.
If you did not accept the terms of theEULA, you are not authorized to use
this source code. For a copy of the EULA,please see the LICENSE.RTF on your
install media.
!endif
?
!if "$(BSP_NOLED)" =="1"
SKIPBUILD=1
!endif
?
RELEASETYPE=PLATFORM
?
PREPROCESSDEFFILE=1
?
TARGETNAME=SLED
???
SOURCES= \
???SLED.cpp \
?
TARGETTYPE=DYNLINK
DLLENTRY=DllMain
CDEFINES=$(CDEFINES) -DLED_EXPORTS
TARGETLIBS= \
???$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib \
???$(_WINCEROOT)\PLATFORM\SMDK6410\lib\ARMV4I\retail\DriverLib.lib \
?
?
INCLUDES= \
???$(_WINCEROOT)\PUBLIC\COMMON\OAK\INC;$(_WINCEROOT)\PLATFORM\COMMON\SRC\INC;$(_WINCEROOT)\PUBLIC\COMMON\DDK\INC;$(_WINCEROOT)\PLATFORM\COMMON\SRC\SOC\S3C6410_SEC_V1\OAL\INC;$(_WINCEROOT)\PLATFORM\SMDK6410\SRC\INC\
其實(shí)需要我們改動(dòng)就紅色字體部分
即
?
TARGETNAME=SLED
???
SOURCES= \
?? ?SLED.cpp \
?
4)在.cpp文件中添加相應(yīng)驅(qū)動(dòng)代碼了。即實(shí)現(xiàn)如下函數(shù)
SPL_Init??
??????????????? SPL_Deinit??
??????????????? SPL_Open??
??????????????? SPL_Close??
??????????????? SPL_Read??
??????????????? SPL_Write??
??????????????? SPL_Seek??
??????????????? SPL_PowerDown??
??????????????? SPL_PowerUp??
??????????????? SPL_IOControl
?
第二大步;
?
1)只編譯SLED即rebuild(前提時(shí)在以前已經(jīng)clean sysgen)編譯生成SLED.DLL文件
?
?
第三大步;應(yīng)用程序的編寫(動(dòng)態(tài)加載)
這個(gè)沒什么需要注意的地方,只是要注意是TEXT("GPO1:")即可。
hLed= CreateFile(TEXT("GPO1:"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
?
將生成的DLL與應(yīng)用程序一起下載到開發(fā)板即可運(yùn)行
附:驅(qū)動(dòng)源文件和應(yīng)用程序
總結(jié)
以上是生活随笔為你收集整理的Window CE 6.0流驱动开发动态加载实验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 千元续航巨无霸!华为畅享50要打破一天一
- 下一篇: nginx源码学习资源