uCOS是一种体积小巧而实用的实时操作系统,由于其代码的开放性,近年来普遍受到人们的关注,许多人开始从事这一操作系统的学习及应用工作,但由于其文档较少,特别是关于安装和使用方面的指导性文章不够充足,使很多初学者,特别是刚刚接触嵌入式操作系统的朋友们不知道如何进行系统的安装及调试,为此我结合自己使用的切身体会,谈一谈它的安装及调试问题,希望对大家能起到一定的帮助作用。 文中的开发工具及开发包如下: * 开发包:uCOS2.51 * 文中开发工具:Borland C 3.1 其中开发工具是经过本人剪裁过的,只适用于此项目开发。 1 安装 * 1.1 下载软件包Software.rar(文件大小848KB) * 1.2 解压缩,建议解压到C盘根目录,这样文件将安装在C:/SOFTWARE,需要空间2.12MB * 1.3 安装完毕 * 1.4 以默认安装路径为例,目录结构为: o C: /SOFTWARE 这是根目录,是所有软件相关的文件都放在这个目录下。 + C:/SOFTWARE/BLOCKS 子程序模块目录。笔者将例子中μC/OS-II用到的与PC相关的函数模块编译以后放在这个目录下。 + C:/SOFTWARE/HPLISTC 这个目录中存放的是与范例HPLIST相关的文件(请看附录D,HPLISTC和TO)。HPLIST.C存放在C:/SOFTWARE/HPLISTC /SOURCE目录下。DOS下的可执行文件(HPLIST.EXE)存放在C:/SOFTWARE/TO/EXE中。 + C:/SOFTWARE/TO 这个目录中存放的是和范例TO相关的文件(请看附录D,HPLISTC和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 这个目录里包括例1的源代码(参见 1.07, 例1),可以在DOS(或Windows 95下的DOS窗口)下运行。 # C:/SOFTWARE/uCOS-II/EX2_x86L 这个目录里包括例2的源代码(参见 1.08, 例2),可以在DOS(或Windows 95下的DOS窗口)下运行。 # C: /SOFTWARE/uCOS-II/EX3_x86L 这个目录里包括例3的源代码(参见 1.09, 例3),可以在DOS(或Windows 95下的DOS窗口)下运行。 # C: /SOFTWARE/uCOS-II/Ix86L 这个目录下包括依赖于处理器类型的代码。此时是为在80x86处理器上运行uC/OS-II而必须的一些代码,实模式,在大模式下编译。 # C: /SOFTWARE/uCOS-II/SOURCE 这个目录里包括与处理器类型无关的源代码。这些代码完全可移植到其它架构的处理器上。 2 开发工具Borland C 3.1的安装 * 2.1 先下载Borland C 3.1 (文件大小1.65MB) * 2.2 解压缩,建议解压到C盘根目录,这样全部的文件将安装在C:/BC31,我们强烈建议采用这个路径安装,这样您将可以直接进行项目的编译及调试,而不需要更改他们的配置,需要空间5.10MB * 2.3 如果您一定要将它安装到其他目录,请修改相应的配置文件,注意蓝色部分: o 2.3.1 打开<安装路径>/BIN/TURBOC.CFG,显示如下: -IC:/BC31/INCLUDE -LC:/BC31/LIB 将C:/BC31该为安装的目录,例如安装目录为E:/BorlandC31,则改后应为 -IE:/BorlandC31/INCLUDE -LE:/BorlandC31/LIB o 2.3.2 打开<安装路径>/BIN/TLINK.CFG,显示如下: -LC:/BC31/LIB 将C:/BC31该为安装的目录,例如安装目录为E:/BorlandC31,则改后应为 -LE:/BorlandC31/LIB * 2.4 至此安装完成 * 2.5 以默认安装路径为例,目录结构为: o C:/BC31 这是根目录,是所有工具相关的文件都放在这个目录下。 + C:/BC31/BIN 全部编译链接的开发工具都放在这个目录下 + C:/BC31/LIB 全部链接库文件存放在这个目录下 + C:/BC31/INCLUDE 全部头文件都存放在这个目录 还有需要说明的是这个Borland C是经过本人裁减的,目的是减少需要的空间(原版需要19.6MB),如果您使用的是原版的软件,可以进行安装,则不需要进行2.3这一步骤的配置工作. 3 项目开发 随开发包附带了4个例子,都具有一定的代表性,下面我们结合例1介绍项目开发的全过程,需要说明的是:安装路径均为默认值。 * 3.1 进入C:/SOFTWARE/uCOS-II/EX1_x86L/BC45目录,会看到两个目录,他们功能如下: o C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/SOURCE 源文件目录 + C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/SOURCE/INCLUDES.H 总的项目头文件,每个源文件都应包含 + C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/SOURCE/OS_CFG.H 配置文件,用于操作系统配置和剪裁 + C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/SOURCE/TEST.C 应用程序文件,在开发新项目时可以参考这个文件的格式 + C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/SOURCE/TEST.LNK 链接文件,包含了链接的库和链接参数 o C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/TEST 项目文件目录 + C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/TEST/TEST.MAK 项目的MAKE文件,熟悉C编译器的人一定知道,通过Make文件可以智能的对整个项目进行自动的编译链接,非常方便,我们在后面会详细介绍这个文件。 + C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/TEST/TEST.MAP 项目映像文件主要完成库文件地址的映射,是项目的产物 + C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/TEST/MAKETEST.BAT 项目Make操作的批处理文件,它将自动完成整个编译链接的全过程 + C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/TEST/TEST.EXE 项目生成的可执行文件,使项目的产物 下面正式开始项目的开发 * 3.2 第一步,按上面的目录结构,建立项目目录,在例中建立了一个目录C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/,并在下面新建了两个子目录TEST和SOURCE,并将相关文件复制到这两个目录中,注意应该尽量按这种路径和目录结构建立项目,否则可能需要更改文件中的路径信息,这是很麻烦的事情。 值得推荐的最快捷的方法就是复制一个例子的目录,如果你的新项目名称为NewProject,可以在C:/SOFTWARE/uCOS-II下新建一个目录C:/SOFTWARE/ uCOS-II/NewProject,再将C:/SOFTWARE/uCOS-II/EX1_x86L中的两个子目录直接复制到新建的目录下,最后只需更改内部的文件的一些配置,在TEST.C中重新写入新项目的代码即可。 * 3.3 第二步,更改INCLUDES.H文件,文件内容为: #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> #include <conio.h> #include <dos.h> #include <setjmp.h> #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" 如果你的软件包的安装路径和项目建立路径是按推荐方式设定的,则不需要更改此文件,但你可以增加一些你想在项目中追加的头文件,如一些驱动程序或应用模块的头文件,但一定要注意路径是否正确。如果你为按标准路径建立项目,必须逐行更改兰颜色部分的代码,使路径正确。 * 3.4 第三步,配置OS_CFG.H文件,因这与软件包和开发工具的安装无关,只用于项目中操作系统的配置,具体的请根据你的项目来自主决定,相关的介绍很多,可以参考uC/OS-II的电子书。 * 3.5 第四步,修改TEST.LNK配置,这里进行开发工具链接时一些参数和链接模块的设置,可以用编辑器打开: /v /s /c /P- + C:/BC31/LIB/C0L.OBJ + ../OBJ/TEST.OBJ + ../OBJ/OS_CPU_A.OBJ + ../OBJ/OS_CPU_C.OBJ + ../OBJ/PC.OBJ + ../OBJ/uCOS_II.OBJ ../OBJ/TEST,../OBJ/TEST C:/BC31/LIB/EMU.LIB + C:/BC31/LIB/MATHL.LIB + C:/BC31/LIB/CL.LIB 3.5.1 /v /s /c /P- 是链接的参数,建议不要更改; 3.5.2 C:/BC31/LIB/C0L.OBJ 是 Turbo C 的Large模式编译库模块,如果开发工具路径不是默认设置,请改为实际的安装路径,例如将C:/BC31改为E:/BorlandC31 3.5.3 ../OBJ/TEST.OBJ 是应用程序的目标文件,它是由TEST.C编译后生成的,并保存在临时生成的C:/SOFTWARE/uCOS-II/EX1_x86L/BC45/OBJ目录中,这个目录使用与保存编译时产生的目标文件的。 3.5.4 ../OBJ/OS_CPU_A.OBJ ../OBJ/OS_CPU_C.OBJ ../OBJ/PC.OBJ ../OBJ/uCOS_II.OBJ 同上,都是编译时产生的目标文件,并保存在OBJ目录下,作为项目链接的组成模块,如果在OBJ目录中缺少上述文件,链接将不会成功。 3.5.5 ../OBJ/TEST,../OBJ/TEST是指定的项目产生的EXE文件和MAP文件的路径和名称,它们分别是TEST.EXE和TEST.MAP,并保存在OBJ目录下。 3.5.6 C:/BC31/LIB/EMU.LIB C:/BC31/LIB/MATHL.LIB C:/BC31/LIB/CL.LIB是链接时需要的库文件,必须令路径符合Borland C的安装路径,如果安装在非推荐目录,必须更改蓝色的路径部分。其中EMU为8087仿真库,MATHL为数学函数库,CL为TurboC在Large模式下的运行库。 * 3.6 第五步,修改TEST.MAK文件,这是Borland C的Make文件,关于Make文件的格式及编写方法请参考相关书籍,这里仅介绍一些配置有关的内容,打开文件可以看到: ############################################################################# # TOOLS ############################################################################# BORLAND=C:/BC31 CC=$(BORLAND)/BIN/BCC ASM=$(BORLAND)/BIN/TASM LINK=$(BORLAND)/BIN/TLINK TOUCH=$(BORLAND)/BIN/TOUCH ############################################################################# # DIRECTORIES ############################################################################# TARGET=../TEST SOURCE=../SOURCE WORK=../WORK OBJ=../OBJ LST=../LST OS=/SOFTWARE/uCOS-II/SOURCE PC=/SOFTWARE/BLOCKS/PC/BC45 PORT=/SOFTWARE/uCOS-II/Ix86L/BC45 如果你得Borland C没有安装在推荐安装的目录,需要更改BORLAND=C:/BC31这一句,例如如果安装在E:/BorlandC31 ,则将BORLAND=C:/BC31改为BORLAND=E:/BorlandC31。 CC=$(BORLAND)/BIN/BCC:这是编译器的名称及路径,一般不更改 ASM=$(BORLAND)/BIN/TASM:这是汇编器的名称及路径,一般不更改 LINK=$(BORLAND)/BIN/TLINK:这是链接器的名称及路径,一般不更改 TARGET=../TEST:项目文件目录,如果路径不是按推荐方式,必需要更改路径 SOURCE=../SOURCE:源文件目录,如果路径不是按推荐方式,必需要更改路径 WORK=../WORK:项目工作目录,MAKETEST.BAT自动编译时全部源文件都复制到这个目录,这个设定必须必须和MAKETEST.BAT中设定相一致 OBJ=../OBJ:目标代码目录,这个设定必须和MAKETEST.BAT中设定相一致 LST=../LST:列表文件目录,这个设定必须和MAKETEST.BAT中设定相一致 OS=/SOFTWARE/uCOS-II/SOURCE:操作系统源文件目录,必须保证路径的正确,如果你的开发包没按推荐方式安装,必须更改这个设定为实际安装的目录。 PC=/SOFTWARE/BLOCKS/PC/BC45:与PC有关的源文件目录,必须保证路径的正确,如果你的开发包没按推荐方式安装,必须更改这个设定为实际安装的目录。 PORT=/SOFTWARE/uCOS-II/Ix86L/BC45:与处理器有关源文件目录,必须保证路径的正确,如果你的开发包没按推荐方式安装,必须更改这个设定为实际安装的目录。开发包中还有一个浮点的处理器文件目录Ix86L-FP。这2个目录是跟移植密切相关的,相当于BSP(板极开发包)。 * 3.7 第六步,配置MAKETEST.BAT,打开可以看见 MD ../WORK MD ../OBJ MD ../LST CD ../WORK COPY ../TEST/TEST.MAK TEST.MAK C:/BC31/BIN/MAKE -f TEST.MAK CD ../TEST 首先是建立 ../WORK ../OBJ ../LST 三个目录,这个目录的名称和路径必须同TEST.MAK 一致,然后进入../WORK目录,并将../TEST目录中的TEST.MAK复制到这里,最后执行Borland C的Make程序,自动进行编译和链接,这里面还是要注意C:/BC31的路径问题。 * 3.9 第八步,进行相关应用程序的开发就可以了,具体的可以参见Test.c这个文件,如果你的项目包括多个源文件,最好是在Test.c中用#include语句把他们都包含进来,否则就要更改Make文件TEST.MAK和其他几个设置文件,如果你确需如此,可以自己尝试一下,这里不再列出。 * 3.10 最后,运行MAKETEST.BAT就可以在TEST目录下生成TEST.EXE文件。 4 其它 有幸还有许多网友都在PC下用Borland C实现了激动人心的调试开发,网友Hcompute把它的心得写了出来,大家也可以参考一下这篇文章 还有更多关于操作系统本身的应用问题,大家尽可以参考它的电子书 另外这篇文章写作很匆忙,基本是一气呵成的,难免存在很多错误,其中的一些观点由于本人水平有限,可能存在一些错误,在此,我欢迎看到这篇文章并发现问题或错误的朋友及时指正,以免误导别人,同时也欢迎读罢有所感悟的朋友积极来信,提出你的观点和看法,让我们共同努力,找到uCOS开发的最好途径。
|