菜鸟学uC/OS_II(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
By <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />Norman
2008-07-03
学期结束了,课程也基本上要上完了,如何度过即将到来的暑假?学学uC/OS_II吧,因为很多人说,对于嵌入式系统不是很熟悉的人,选择这个比较利于学习的系统,入门比较合适。
那就开始学习吧。
我的习惯是在网上看看网友们推荐的学习流程和学习资料然后再开始学习。大多数的前辈们都推荐了邵贝贝老师的书籍,正好我偶然机会下碰到书店有这本书,那正好,买回来再说吧(其实买的时候我可没有这么轻松,毕竟60多块呢)。
第一天,仔细研究了书中的结构和作者、译者的建议,感觉这本书还不错,兴趣上来了。
第二天,按照作者建议,先阅读第一章的例程和第三章的内核结构;不过中途老板让做了些其他事情,耽误了几天。
第三天,中断回来,又得重新看,我决定按照书中介绍,先跑跑程序;按照书中的步骤、路径,程序很容易跑,也没有什么可总结的。然后当然是要修改程序,试试编译和调试;问题就来了,就像很多人遇到的一样。所幸,我们有百度和谷歌这两个好老师。
在网上散了几步,确实有很多问题都出现过,也都解决了。不过我这个半路出家来学嵌入式的菜鸟不是一般的菜,计算机基础不太扎实,有些问题还真的看不太明白。不过古人教的好,有志者事竟成。经过一个下午的搜索、查询和反复试验,总算达到了我的期望。
总结一下今天下午的收获:
1、对uCOS_II的结构目录有了一定的了解
首先,安装uCOS_II 2.52版本,出来的SOFTWARE文件夹就是整个系统的源代码——当然,里面有作者给的例程了。
C: \SOFTWARE
——这是根目录,是所有软件相关的文件都放在这个目录下。
+ C:\SOFTWARE\BLOCKS
——子程序模块目录。作者将例子中μC/OS-II用到的与PC相关的函数模块编译以后放在这个目录下。
+ C:\SOFTWARE\HPLISTC
——这个目录中存放的是与范例HPLIST相关的文件。HPLIST.C存放在C:\SOFTWARE\HPLISTC \SOURCE目录下。DOS下的可执行文件(HPLIST.EXE)存放在C:\SOFTWARE\TO\EXE中。
+ C:\SOFTWARE\TO
——这个目录中存放的是和范例TO相关的文件。
源文件TO.C存放在C:\SOFTWARE\TO\SOURCE 中, DOS下的可执行文件(TO.EXE)存放在C:\SOFTWARE\TO\EXE中。注意TO需要一个TO.TBL文件,它必须放在根目录下。用户可以在C:\SOFTWARE\TO\EXE目录下找到TO.TBL文件。如果要运行TO.EXE,必须将TO.TBL复制到根目录下。
+ C: \SOFTWARE\uCOS-II
——与μCOS-II 相关的文件都放在这个目录下。
# C:\SOFTWARE\uCOS-II\EX1_x86L
# C:\SOFTWARE\uCOS-II\EX2_x86L
# C: \SOFTWARE\uCOS-II\EX3_x86L
# C: \SOFTWARE\uCOS-II\Ix86L
——这些是作者给出的例程
# C: \SOFTWARE\uCOS-II\SOURCE
——这个目录里包括与处理器类型无关的源代码。这些代码完全可移植到其
它架构的处理器上。
2、了解到有两种编译的方法(BC++4.5)
首先是利用例子中给出的MAKETEST.BAT文件。批处理文件也没有什么神秘的,就是很多DOS命令的集合,写作批处理就是为了方便。这里出现的问题不是很多,现在想来还比较好笑。第一次编译的时候,提示找不到OS_CPU.H,我仔细看了看,没有问题嘛,路径是对的呀,怎么会找不到?难道真的需要在C盘才可以(我的uCOS在D盘)?试试吧,大家也应该知道了,这样是解决了这个问题。但是为什么呢?不在C盘应该也是可以的嘛!?还是基础比较差,还没有找到在哪里修改路径。怎么办?查吧!欣喜地看到一个网友写的uCOS_II的安装调试指南中提到了TEST.MAK中需要修改路径(网友ID不记得了,不好意思哈^_-),这个就比较明确了,Makefile嘛,指定路径是比较重要的,不过还没有试验过,还是先到C盘吧(呵呵)。
这个问题解决之后,重新编译,出现了TASM不是内部批处理命令的提示。TASM硬件基础学过,应该是我安装的BC中没有这个执行文件吧,看看呢,果然没有!谷歌上搜搜,很容易找到了一个5.0的,下载……咦?要安装的说,安装吧,吸取教训,默认路径吧。安装完成,再次运行MAKETEST.BAT,估计各位都要偷笑了,肯定不行嘛,路径都没有改,TEST.MAK怎么找得到?不过有前辈告诉我,把TASM.EXE复制到BC下的INCLUDE目录不就可以了?因为TEST.MAK中使用的几个文件都是放在这里的。那就这么着呗(其实我想,严格的来说,我们把所有需要的文件放在一起是否更简单呢?没有验证过,有网友跟我的想法相同)。再次运行,看到CMD中代码一行行出现,我知道成功了,源程序修改的地方也体现出来了。
第二个方法就是使用BC的IDE,这个方法是按照大多数网友的经验做的,不过好像语法上有些不一致,出项了很多警告,这些问题很繁琐,留在以后再解决吧。下面记录一些经过,以防以后又糊涂了。
向BC45下INCLUDE目录拷贝了这几个文件:INCLUDES.H、OS_CFG.H、OS_CPU.H、PC.H四个文件,当然,在INCLUDES.H中要修改其路径为BC45下的路径即:(我不太确定OS_CPU_A.ASM是否要拷贝,但是根据后来的操作和验证,应该不需要的)
/*
#include "\software\ucos-ii\ix86l\bc45\os_cpu.h"
#include "os_cfg.h"
#include "\software\ucos-ii\source\ucos_ii.h"
#include "\software\blocks\pc\bc45\pc.h"
*/
#include "c:\bc45\include\os_cpu.h"
#include "c:\bc45\include\os_cfg.h"
#include "c:\bc45\include\pc.h"
#include "c:\bc45\include\ucos_ii.h"
然后在BC45的IDE中新建ide工程,应用工程、DOS(standard)、Large。放在哪里好像是没有关系的,这个我验证过。然后添加工程所需要的文件,当然,这就是你裁剪功能后的uCOS_II系统文件以及你自己的应用程序源文件了。当然,这里因为是在PC上,PC功能函数模块也需要添加,这在其他CPU上应该是不一样的。具体文件是:OS_CPU_C.C、OS_CPU_A.ASM、uCOS_II.C、PC.C、test.c。
在书的配套例程中,具体路径如下:
SOFTWARE\ucos_ii\ix86\os_cpu_a.asm
SOFTWARE\ucos_ii\ix86\os_cpu_c.c
SOFTWARE\ucos_ii\ex1_x86l\bc45\source\test.c
SOFTWARE\blocks\pc\bc45\pc.c
SOFTWARE\ucos_ii\source\ucos_ii.c
这样,就可以compile、make all、build all了。
出现的信息就是很多的warning不过最终生成的prjXXX.exe还是可以运行的。
相信有很多跟我一样比较茫然的是,哪里去找BC45和TASM?我认为还是有很多的,我是很快就找到了一个完整版的BC45,TASM5.0更是漫天飞。相信大家都能够找到。去搜索吧,这对自己很有好处。
三天的学习时间,获得的就是这些,可能看起来并没有什么内容,而且思路还不是很清晰,但我相信,通过循序渐进的学习,前面的路会越来越明了。
(待续)
用户461316 2008-9-12 20:14
用户116683 2008-9-12 17:13