有关GPIO驱动开发问题,再次请教!(WinCE5.0+VS2008)
首先,在本论坛我已开四个主题,均得到了网友的热心回答,非常感谢,我也尽量的结帖,把积分发给大家,我感觉这也是我能做的唯一事了。由于初涉WinCE,以前对底层硬件及操作系统的知识学的很好,因此好多问题就像白痴一样,还请大家见谅!
上周四(3月25日),我搭建好了实验平台,并成功运行了第一个HELLO程序;然后就转入流驱动的编写工作中,我的目标是用IO口来控制实验板上的LED。
这是我的本科毕业设计内容,导师给的平台是广嵌的GEC2440,我已安装了PB5.0和VS2008,ActiveSync已同步连接好,DNW串口调试工具也可以使用。
以上就是我的一些基本情况!以下是我想问的问题,还请大家多多指教啊。
经过三天的摸索,对流驱动也有了一些认识,以下先谈谈我这些天的收获吧。
PB5.0我装在了E盘,广嵌提供的BSP包smdk2440我放在了E:\WINCE500\PLATFORM\smdk2440\DRIVERS目录下。
我新建了GPIOdriver文件夹,并已修改了本目录下的dirs,在GPIOdriver文件夹中我按要求新建了makefile和sources文件,GPIODriver.def文件,GPIODriver.cpp文件,GPIODriver.h文件,并均添加了相应代码(代码是参考的天嵌的,感谢!),按大家的指导,下面我该修改E:\WINCE500\PLATFORM\smdk2440\FILES目录下的platform.reg 和platform.bib两个文件,这里就有个问题了:找开文件.bib文件吧,随便看一下:
IF BSP_NOSD !
SDBusDriver.dll $(_FLATRELEASEDIR)\SDBusDriver.dll NK SH
SDCSDCard.DLL $(_FLATRELEASEDIR)\SDCSDCard.DLL NK SH
SDMemory.dll $(_FLATRELEASEDIR)\SDMemory.dll NK SH
ENDIF BSP_NOSD !
这里的IF和ENDIF是干什么用的?我们写时要不要加上呢?如果要加上IF后面的BSP_NOSD我们应该写什么呢?
打开.reg文件也是如此,这里的IF和ENDIF究竟是做什么的呢?是不是类似于C语言中的条件编译呢?
然后的问题就是,如果以上工作都做好了下来该做什么了?大家总说要编译,到底编译什么呢?这个问题很幼稚,在商家提供的BSP文件夹里只有一个smdk2440.rar(我已解压入到了E:\WINCE500\PLATFORM\目录下)压缩包和gec2440.pbxml文件,生成SDK时我就是编译的这个.pbxml文件,现在还是编译它吗?
还有,大家说的.dll文件是自已写的呢,还是编译后生成的呢?
还有就是操作系统的镜像文件是不是在编译后生成然后再烧进去呢?
我知道我的问题也许让大家看起来好像是我不认真学习,就知道向大家问这问那的,这我能理解,我是学AVR出身的,也曾经在AVR论坛给网友们回过几个月的帖子,有时真的感觉网友们太没探索精神了,就知道来论坛问。今天去找指导老师了,老师也不懂WinCE,就说让我好好自已琢磨吧,别着急。而且教研室的老师几乎没有做WinCE的,唯一的一个研究生导师曾经指派研究生做过相关课题,这个研究生也已毕业了。之所以老师让我做这个题目,是因为他项目中想做一个后台,老师很相信我,才把这个题目给了我,我不想让老师失望,大家帮帮我吧,谢谢了!!!