amily:宋體;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>我是直接從51到ARM,受51的影響,在wince6.0下怎麼編寫應用程式控制開發板的LED,查了好多資料,並結合開發板提供的LED測試程式和led驅動,編寫了一個簡單的LED驅動和應用程式來控制開發板的LED!
所需硬體:開發板ok6410,
所需軟體:vs2005,wince6.0
實驗步驟:
第一大步:
1. 在相應的檔案夾先建立幾個必須的檔案,需要注意的是,下面幾個檔案均是文字檔,根據需要更改尾碼,makefile和sources沒有尾碼。Obj和build.log是編譯自動產生的檔案,不用管它!
也可以複製D:\WINCE600\PLATFORM\SMDK6410\SRC\DRIVERS\LED下的檔案自行修改
2. 下面分別開啟相應檔案,並填寫內容:
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\
其實需要我們改動就紅色字型部分
即
TARGETNAME=SLED
SOURCES= \
SLED.cpp \
4)在.cpp檔案中添加相應驅動代碼了。即實現如下函數
SPL_Init
SPL_Deinit
SPL_Open
SPL_Close
SPL_Read
SPL_Write
SPL_Seek
SPL_PowerDown
SPL_PowerUp
SPL_IOControl
第二大步;
1)只編譯SLED即rebuild(前提時在以前已經clean sysgen)編譯產生SLED.DLL檔案
第三大步;應用程式的編寫(動態載入)
這個沒什麼需要注意的地方,只是要注意是TEXT("GPO1:")即可。
hLed= CreateFile(TEXT("GPO1:"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
將產生的DLL與應用程式一起下載到開發板即可運行
附:驅動源檔案和應用程式