Window CE 6.0流驱动开发动态加载实验
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与应用程序一起下载到开发板即可运行
附:驱动源文件和应用程序
Window CE 6.0流驱动开发动态加载实验相关推荐
- Windows CE下流驱动的动态加载
Windows CE下流驱动的动态加载 闲话少说,进入正题.查找EVC的帮助,发现函数ActivateDevice()可用来加载驱动程序.而这个函数的使用是相当简单的.我就不多说了,贴上一段帮助最能说 ...
- WinCE驱动的动态加载
//===================================================================== //TITLE: // WinCE驱动的动态加载 ...
- WINCE流驱动的自动加载
********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...
- nginx 稳定版 1.16.0 发布,支持动态加载 SSL 证书
开发四年只会写业务代码,分布式高并发都不会还做程序员? nginx 1.16.0 稳定版已发布,包含来自 1.15.x 主线分支的新功能和错误修复: 针对流模块(stream module)中的 ...
- JDBC驱动的动态加载
2019独角兽企业重金招聘Python工程师标准>>> 需求描述:通过导入jdbc的驱动包,配置数据库的JDBC连接参数.来动态连接关系型数据库.要求不用重启JVM进程. 解决思路: ...
- win10驱动开发4——加载/卸载驱动
注意加载卸载驱动必须是win32项目 #include <Windows.h> #include <stdio.h> int main() {//等同于创建驱动======== ...
- Android插件化开发之DexClassLoader动态加载dex、jar小Demo
一.温故动态加载ClassLoader机制 如果对Android的ClassLoader加载机制不熟悉,猛戳Android插件化开发动态加载基础之ClassLoader工作机制 http://blog ...
- 动态加载、插件化、热部署、热修复(更新)知识汇总
开发中经常能听到动态加载,插件化,热部署等词,动态加载到底是何方神物,它能实现什么功能,实现原理又如何?动态加载和插件化.热部署又有着什么样的联系呢?下面我们一起来学习吧. 1. 基本知识 1.1 动 ...
- Spring实战之Spring动态加载jar模块和卸载模块
加载 Spring提供了下面这些类来加载外部jar. classPathResorce可以用来加载类路径上的jar. 一般推荐使用 classLoader = new UrlClassLoader(n ...
最新文章
- 怎样实现企业管理系统的操作日志功能
- Python导入其他文件中的.py文件 即模块
- 类继承(c++细节篇六)
- 快速看完整部教材,列出你不懂的 5 - 10 个问题
- java idisposable_在C#中实现IDisposable [重复]
- 配置Server Side TAF
- Android 开机动画的制作
- 原生 js 实现弹窗
- xp系统远程计算机需要网络打印机驱动,xp系统如何设置网络打印机共享
- 深度 | 阿里新供应链体系架构解读
- 外国人喜欢问中国人的大问题
- 计算机第十三套试题,2012年计算机二级VB第十三套上机试题及解析
- PowerPivot——DAX(初识)
- 在QQ群和QQ空间中挂马
- python+pands+matplotlib分析Excel表格
- HbuilderX中的MuMu模拟器调试
- java学生选课系统课程设计报告_Java语言程序设计课程设计-学生选课系统
- 直接解决OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.OMP:
- ACL 2022事件相关(事件抽取、事件关系抽取、事件预测等)论文汇总
- c语言中if(a字节4),【鲁班】的意思是什么?【鲁班】是什么意思?