Window CE 6.0流驱动开发动态加载实验

来源:互联网 发布:网络图片头像男生背影 编辑:程序博客网 时间:2024/06/11 17:58
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没有后缀。Objbuild.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与应用程序一起下载到开发板即可运行

附:驱动源文件和应用程序

原创粉丝点击