wince驱动开发

40 篇文章 0 订阅
大部分实验板的手册都有详细的HELLO程序过程,但很少有手册详细讲解流驱动的开发过程,下面以我的经历详细的写一写:
流驱动的基本介绍可以看看天嵌手册的第五章,脑子里起码要先有个基本概念!
1)打开以下目录:E:\WINCE500\PLATFORM\smdk2440\DRIVERS,并在该目录下新建一个文件夹,命名为GPIOdriver,并用记事本打开该目录下的dirs文件,按其格式添加\GPIOdriver,dirs没有扩展名,打开看看就懂,没什么特别的!
注:其中E盘是我的安装目录,smdk2440是GEC2440实验板提供的BSP,按要求拷贝到了E:\WINCE500\PLATFORM\ 目录。
2)打开刚刚新建的GPIOdriver文件夹,新建txt记事本文件,命名为makefile,打开加入以下内容:!INCLUDE $(_MAKEENVROOT)\makefile.def,然后将.txt扩展名去掉,使其变为无扩展名的文件。
3)仍然在GPIOdriver文件夹内,仍然新建txt文件,命名为GPIOdriver,加入以下内容后将其扩展名更改为.def文件:
LIBRARY GPIOdriver
EXPORTS
        GIO_Close
        GIO_Deinit
        GIO_Init
        GIO_IOControl
        GIO_Open
        GIO_PowerDown
        GIO_PowerUp
        GIO_Read
        GIO_Seek
        GIO_Write
4)仍然在GPIOdriver文件夹内,仍然新建txt文件,命名为sources,加入以下内容后将其扩展名删除,使其成为无扩展名文件:
RELEASETYPE=PLATFORM
TARGETNAME=GPIODriver
TARGETTYPE=DYNLINK
DLLENTRY=DllEntry


TARGETLIBS= \
    $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \


MSC_WARNING_LEVEL = $(MSC_WARNING_LEVEL) /W3 /WX


INCLUDES= \
    $(_TARGETPLATROOT)\src\inc; \
    $(_COMMONOAKROOT)\inc; \
    $(_PUBLICROOT)\common\oak\inc;$(_PUBLICROOT)\common\sdk\inc;$(_PUBLICROOT)\common\ddk\inc;        \
    ..\..\inc
      
SOURCES= \
        GPIODriver.cpp
5)仍然在GPIOdriver文件夹内,建立GPIOdriver.cpp和GPIOdriver.h,这个大家找相关例子程序进行参考,我是参考的天嵌的例子,不过由与BSP不同,编译时总是出错,错误原因就是一些头文件不一样,有一点编程序经验应该都能查出来,这时最好的解决办法是把需要包含的内容直接写到GPIOdriver.h中去,这样就不会有编译错误了。至于如何编译,别急,请看后文!先这么做好,排查错误要慢慢来,先写好一个再说!
6)以上出现了多次GPIOdriver,这些地方要命名一致,在写def文件时,GIO只能是三个字母,这里注意!
7)以上工作完成后,GPIOdriver文件夹下的工作就完成了,然后打开E:\WINCE500\PLATFORM\smdk2440\FILES目录,以记事本打开platform.reg文件,添加如下代码:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\LEDdriver]
"Prefix"="GIO"
"Dll"="GPIOdriver.dll"
注意GIO 与GPIOdriver.dll要与前面的命名一致!另外要注意,.reg文件中有很多IF与END的配套使用,添加代码时不要放在这些中间了!至于IF与END的作用,初学者先跳过!
8)同样在FILES目录下打开platform.bib文件,加入以下代码:
GPIOdriver.dll $(_FLATRELEASEDIR)\GPIOdriver.dll NK SH
同样须注意命名与IF、END的配对!
9)以上工作完成后基本工作就差不多了,这里再说明一点,关于目录各个实验板厂商的BSP包各不相同,比如说天嵌的目录应为TQ2440\Src\Drivers和TQ2440\Files,这个要灵活应变!
10)打开实验板商家所带的PB平台文件.pbxml文件,在PB的左侧选择FileView选项(我这里默认就是这个选项),这里有树形结构的文件夹目录,打开PLATFORM,smdk2440,drivers,然后会看到你刚刚建立的GPIOdriver文件,右击,选择Build Current Project,就会对刚刚建立的流驱动进行编译,如果有错误会有提示,修改后再编译,直到没有错误为止!
11)点击菜单栏Build OS---Build and Sysgen,对.pbxml文件进行编译,这个大概要花一个多小时,这里你可以去看会儿电影,编译完成后会有一些警告,不用管,只要没错误就行!
编译前要选中Build OS菜单下的Clean Before Building,Copy files to Release Directory afer build,Make Run-time Image After Build,至于为什么我也不是很明白,都是一些过来人提供的经验,这个等熟练后慢慢琢磨吧。
还有一种说法是添加一个驱动不用选择Build and Sysgen,这样耗时太长!究竟是怎么弄来着,我忘了,慢慢研究吧。
12)编译成功后找开与.pbxml文件同目录的RelDir\smdk2440_ARMV4I_Release目录,很发现有好多文件,可以找到NK.nb0和NK.bin文件。找这个文件的快速方法是将这些文件以“详细信息”方式显示,然后单击一下“大小”,会将所有文件以大小排序,最大的那个就是了,这样找起来会快些。到这里驱动编写完毕,NK.nb0暂时留用!

13)打开VS2008,新建项目,可以参考手册的第六章内容,至于添加的代码可现成的例程序,这个很简单的。这种小问题自已琢磨!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值