有关GPIO驱动开发问题,再次请教!(WinCE5.0+VS2008)

jbb0523 2010-03-29 03:55:51
首先,在本论坛我已开四个主题,均得到了网友的热心回答,非常感谢,我也尽量的结帖,把积分发给大家,我感觉这也是我能做的唯一事了。由于初涉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的,唯一的一个研究生导师曾经指派研究生做过相关课题,这个研究生也已毕业了。之所以老师让我做这个题目,是因为他项目中想做一个后台,老师很相信我,才把这个题目给了我,我不想让老师失望,大家帮帮我吧,谢谢了!!!
...全文
239 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LIMINLY520 2011-08-08
  • 打赏
  • 举报
回复
路过
看下
xilidecai 2010-05-21
  • 打赏
  • 举报
回复
http://www.cnblogs.com/Torres_fans/
我的博客有说明的嘛~~
可以看看~
jbb0523 2010-04-02
  • 打赏
  • 举报
回复
3月30号第一个GPIO驱动调试成功,谢谢大家了!
jbb0523 2010-03-30
  • 打赏
  • 举报
回复
谢谢楼上各位朋友,何宗键的书我已拿到。再次感谢楼上各位朋友
sunrain_hjb 2010-03-30
  • 打赏
  • 举报
回复
磨刀不误砍柴工,建议楼主先系统的看一遍实验指导书。
shenmou 2010-03-30
  • 打赏
  • 举报
回复
恩,先找本书看下
cjdxling 2010-03-30
  • 打赏
  • 举报
回复
建议你去看看何宗建的书,再去做!
jbb0523 2010-03-29
  • 打赏
  • 举报
回复
谢谢你,真的谢谢您,每次都热心的回帖!
博说医械研发 2010-03-29
  • 打赏
  • 举报
回复
IF BSP_NOSD这个是全局变量的设置,在你的BSP文件夹根目录里有一个应该是叫smdk2440.bat的bat文件,用记事本打开,能够看到set BSP_NOSD=之类的语句,是设置些全局变量,你的platform.reg和BIB可以参照这样的设置自己添加全局变量,比如set BSP_NOGPIO=,然后在platform.reg和BIB也加入IF等的判断,或者是你想你的驱动总是被加载的,就不需要进行判断,不需要在BAT文件加变量,也不需要在REG和BIB里边进行IF之类的判断。


你参考开发板的开发手册,在PB5.0上先sysgen出一个NK.BIN,目的是确保这个BSP能够正确sysgen完成,此过程最好是先不要加你的驱动,也就是把DIRS、REG、BIB等使用原厂的,成功后再添加你的驱动,就是上边你所说的那些修改,编译驱动的时候是打开你所建的工程,然后在PB的左侧FileView一栏找到你所创建的驱动文件夹,然后右键build current project,如果前边做的工作都正确就会有release目录里边出现一个你所定义的.DLL文件,也就是说驱动出来了,然后再执行一次make run time image。

最后把NK.BIN,也就是系统的镜像文件烧到开发板就完成了。

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧