Window CE 6.0流驱动开发实验

 

Window CE 6.0流驱动开发实验

                                      作者:桂林电子科技大学student

 

      我是直接从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)SimpleDriver.def中填入:

;******************************************************************************

LIBRARY         SimpleDriver  

EXPORTS       GPO_Init  

                GPO_Deinit  

                GPO_Open  

                GPO_Close  

                GPO_Read  

                GPO_Write  

                GPO_Seek  

                GPO_PowerDown  

                GPO_PowerUp  

                GPO_IOContro

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 the terms of the Microsoft end-user

license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.

If you did not accept the terms of the EULA, 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=SimpleDriver

   

SOURCES= \

    SimpleDriver.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=SimpleDriver 

SOURCES= \

    SimpleDriver.cpp \

4)在.cpp文件中添加相应驱动代码了。即实现如下函数

                GPO_Init  

                GPO_Deinit  

                GPO_Open  

                GPO_Close  

                GPO_Read  

                GPO_Write  

                GPO_Seek  

                GPO_PowerDown  

                GPO_PowerUp  

                GPO_IOContro

 

第二大步;

 

1)打开dirs(驱动文件夹里)文件,添加:

SimpleDriver\

1)否则会在驱动后面出现添加excluded form build,这个用于在动态加载该驱动是单独编译出”.dll”驱动文件。

 

2)修改platform.reg文件(注册表选项)作用是当wince启动时,就会自动加载该驱动了

打开该文件,添加如下内容:

;================= LED ==================

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SLED]

"Prefix"="GPO"

"Dll"="SimpleDriver.dll"

"Order"=dword:0

"Index"=dword:1

 

注:platform.reg文件在D:\WINCE600\PLATFORM\SMDK6410\FILES

 

3)修改platform.bib文件(把DLL文件集成到NK中)

在FILES之前加入一行,指明在生成wince 内核映像时自动将SimpleDriver.dll加入到内核映像中。

SimpleDriver.dll         $(_FLATRELEASEDIR)\SimpleDriver.dll        NK    SHK

注:platform.bib文件在D:\WINCE600\PLATFORM\SMDK6410\FILES

4)只编译SimpleDriver即rebuild(前提时在以前已经clean sysgen)

5)

把在D:\WINCE600\OSDesigns\S3C6410_DEMO\S3C6410_DEMO\RelDir\Samsung_SMDK6410_Release 的目录(这个路径可以从编译信息中得到)可以找到所需的全部文件nb0,bin文件。将找到的文件用SD卡一键烧写到开发板上运行。

 

第三大步;应用程序的编写

这个没什么需要注意的地方,只是要注意是TEXT("GPO1:")即可。

hLed = CreateFile(TEXT("GPO1:"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

 

 

附:驱动源文件和应用程序(呵呵,好像不能上传附件)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值