Window CE 6.0流驱动开发动态加载实验
2012-11-19 23:53
399 查看
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与应用程序一起下载到开发板即可运行
附:驱动源文件和应用程序
所需硬件:开发板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与应用程序一起下载到开发板即可运行
附:驱动源文件和应用程序
相关文章推荐
- Window CE 6.0流驱动开发实验
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- 转 WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- 转 :WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- 转:WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- 内核移植,nfs--解决了开发板子不能动态加载驱动的问题
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动(转)
- 转:WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- 转:WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- [转]Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
- Android 使用动态加载框架DL进行插件化开发
- Linux驱动:动态加载hello world模块
- Android开发之动态加载,运行未安装apk
- Cocos2d-x 3.2 异步动态加载 -- 保卫萝卜开发总结
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类 推荐
- Windows CE下流驱动的动态加载
- Android 使用动态加载框架DL进行插件化开发
- Android插件化开发基础之App如何动态加载类