当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]uC/OS开发方法

uC/OS是一种体积小巧而实用的实时操作系统,由于其代码的开放性,近年来普遍受到人们的关注,许多人开始从事这一操作系统的学习及应用工作,但由于其文档较少,特别是关于安装和使用方面的指导性文章不够充足,使很多初学者,特别是刚刚接触嵌入式操作系统的朋友们不知道如何进行系统的安装及调试,为此我结合自己使用的切身体会,谈一谈它的安装及调试问题,希望对大家能起到一定的帮助作用。

文中的开发工具及开发包如下:

开发包:uC/OS2.51点击此处下载

http://www.freewind.com.cn/ucos/tools/ucoscode.htm

文中开发工具:BorlandC3.1点击此处下载

http://www.freewind.com.cn/ucos/tools/bc31.rar

其中开发工具是经过本人剪裁过的,只适用于此项目开发。

1安装

1.1下载软件包Software.rar(文件大小848KB)

1.2解压缩,建议解压到C盘根目录,这样文件将安装在C:SOFTWARE,需要空间2.12MB

1.3安装完毕

1.4以默认安装路径为例,目录结构为:

C:SOFTWARE

这是根目录,是所有软件相关的文件都放在这个目录下。

C:SOFTWAREBLOCKS

子程序模块目录。笔者将例子中μC/OS-II用到的与PC相关的函数模块编译以后放在这个目录下。

C:SOFTWAREHPLISTC

这个目录中存放的是与范例HPLIST相关的文件(请看附录D,HPLISTC和TO)。HPLIST.C存放在C:SOFTWAREHPLISTCSOURCE目录下。DOS下的可执行文件(HPLIST.EXE)存放在C:SOFTWARETOEXE中。

C:SOFTWARETO

这个目录中存放的是和范例TO相关的文件(请看附录D,HPLISTC和TO)。源文件TO.C存放在C:SOFTWARETOSOURCE中,DOS下的可执行文件(TO.EXE)存放在C:SOFTWARETOEXE中。注意TO需要一个TO.TBL文件,它必须放在根目录下。用户可以在C:SOFTWARETOEXE目录下找到TO.TBL文件。如果要运行TO.EXE,必须将TO.TBL复制到根目录下。

C:SOFTWAREuCOS-II

与μC/OS-II相关的文件都放在这个目录下。

C:SOFTWAREuCOS-IIEX1_x86L

这个目录里包括例1的源代码(参见1.07,例1),可以在DOS(或Windows95下的DOS窗口)下运行。

C:SOFTWAREuCOS-IIEX2_x86L

这个目录里包括例2的源代码(参见1.08,例2),可以在DOS(或Windows95下的DOS窗口)下运行。

C:SOFTWAREuCOS-IIEX3_x86L

这个目录里包括例3的源代码(参见1.09,例3),可以在DOS(或Windows95下的DOS窗口)下运行。

C:SOFTWAREuCOS-IIIx86L

这个目录下包括依赖于处理器类型的代码。此时是为在80x86处理器上运行uC/OS-II而必须的一些代码,实模式,在大模式下编译。

C:SOFTWAREuCOS-IISOURCE

这个目录里包括与处理器类型无关的源代码。这些代码完全可移植到其它架构的处理器上。

2开发工具BorlandC3.1的安装

2.1先下载BorlandC3.1(文件大小1.65MB)

2.2解压缩,建议解压到C盘根目录,这样全部的文件将安装在C:BC31,我们强烈建议采用这个路径安装,这样您将可以直接进行项目的编译及调试,而不需要更改他们的配置,需要空间5.10MB

2.3如果您一定要将它安装到其他目录,请修改相应的配置文件,注意蓝色部分:

2.3.1打开<安装路径>BINTURBOC.CFG,显示如下:

-IC:BC31INCLUDE

-LC:BC31LIB

将C:BC31该为安装的目录,例如安装目录为E:BorlandC31,则改后应为

-IE:BorlandC31INCLUDE

-LE:BorlandC31LIB

2.3.2打开<安装路径>BINTLINK.CFG,显示如下:

-LC:BC31LIB

将C:BC31该为安装的目录,例如安装目录为E:BorlandC31,则改后应为

-LE:BorlandC31LIB

2.4至此安装完成

2.5以默认安装路径为例,目录结构为:

C:BC31

这是根目录,是所有工具相关的文件都放在这个目录下。

C:BC31BIN

全部编译链接的开发工具都放在这个目录下

C:BC31LIB

全部链接库文件存放在这个目录下

C:BC31INCLUDE

全部头文件都存放在这个目录

还有需要说明的是这个BorlandC是经过本人裁减的,目的是减少需要的空间(原版需要19.6MB),如果您使用的是原版的软件,可以进行安装,则不需要进行2.3这一步骤的配置工作,如果您却是需要这个原版的软件,请与我联系留言写信

3项目开发

随开发包附带了4个例子,都具有一定的代表性,下面我们结合例1介绍项目开发的全过程,需要说明的是:安装路径均为默认值。

3.1进入C:SOFTWAREuCOS-IIEX1_x86LBC45目录,会看到两个目录,他们功能如下:

C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCE

源文件目录

C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCEINCLUDES.H

总的项目头文件,每个源文件都应包含

C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCEOS_CFG.H

配置文件,用于操作系统配置和剪裁

C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCETEST.C

应用程序文件,在开发新项目时可以参考这个文件的格式

C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCETEST.LNK

链接文件,包含了链接的库和链接参数

C:SOFTWAREuCOS-IIEX1_x86LBC45TEST

项目文件目录

C:SOFTWAREuCOS-IIEX1_x86LBC45TESTTEST.MAK

项目的MAKE文件,熟悉C编译器的人一定知道,通过Make文件可以智能的对整个项目进行自动的编译链接,非常方便,我们在后面会详细介绍这个文件。

C:SOFTWAREuCOS-IIEX1_x86LBC45TESTTEST.MAP

项目映像文件主要完成库文件地址的映射,是项目的产物

C:SOFTWAREuCOS-IIEX1_x86LBC45TESTMAKETEST.BAT

项目Make操作的批处理文件,它将自动完成整个编译链接的全过程

C:SOFTWAREuCOS-IIEX1_x86LBC45TESTTEST.EXE

项目生成的可执行文件,使项目的产物

下面正式开始项目的开发

3.2第一步,按上面的目录结构,建立项目目录,在例中建立了一个目录C:SOFTWAREuCOS-IIEX1_x86LBC45,并在下面新建了两个子目录TEST和SOURCE,并将相关文件复制到这两个目录中,注意应该尽量按这种路径和目录结构建立项目,否则可能需要更改文件中的路径信息,这是很麻烦的事情。[!--empirenews.page--]

值得推荐的最快捷的方法就是复制一个例子的目录,如果你的新项目名称为NewProject,可以在C:SOFTWAREuCOS-II下新建一个目录C:SOFTWAREuCOS-IINewProject,再将C:SOFTWAREuCOS-IIEX1_x86L中的两个子目录直接复制到新建的目录下,最后只需更改内部的文件的一些配置,在TEST.C中重新写入新项目的代码即可。

3.3第二步,更改INCLUDES.H文件,文件内容为:

#include

#include

#include

#include

#include

#include

#include

#include"softwareucos-iiix86lbc45os_cpu.h"

#include"os_cfg.h"

#include"softwareucos-iisourceucos_ii.h"

#include"softwareblockspcbc45pc.h"

如果你的软件包的安装路径和项目建立路径是按推荐方式设定的,则不需要更改此文件,但你可以增加一些你想在项目中追加的头文件,如一些驱动程序或应用模块的头文件,但一定要注意路径是否正确。如果你为按标准路径建立项目,必须逐行更改兰颜色部分的代码,使路径正确。

3.4第三步,配置OS_CFG.H文件,因这与软件包和开发工具的安装无关,只用于项目中操作系统的配置,具体的请根据你的项目来自主决定,相关的介绍很多,可以参考uC/OS-II的电子书。

3.5第四步,修改TEST.LNK配置,这里进行开发工具链接时一些参数和链接模块的设置,可以用编辑器打开:

/v/s/c/P-+

C:BC31LIBC0L.OBJ+

..OBJTEST.OBJ+

..OBJOS_CPU_A.OBJ+

..OBJOS_CPU_C.OBJ+

..OBJPC.OBJ+

..OBJuCOS_II.OBJ

..OBJTEST,..OBJTEST

C:BC31LIBEMU.LIB+

C:BC31LIBMATHL.LIB+

C:BC31LIBCL.LIB

3.5.1/v/s/c/P-是链接的参数,建议不要更改;

3.5.2C:BC31LIBC0L.OBJ是TurboC的Large模式编译库模块,如果开发工具路径不是默认设置,请改为实际的安装路径,例如将C:BC31改为E:BorlandC31

3.5.3..OBJTEST.OBJ是应用程序的目标文件,它是由TEST.C编译后生成的,并保存在临时生成的C:SOFTWAREuCOS-IIEX1_x86LBC45OBJ目录中,这个目录使用与保存编译时产生的目标文件的。

3.5.4..OBJOS_CPU_A.OBJ..OBJOS_CPU_C.OBJ..OBJPC.OBJ..OBJuCOS_II.OBJ同上,都是编译时产生的目标文件,并保存在OBJ目录下,作为项目链接的组成模块,如果在OBJ目录中缺少上述文件,链接将不会成功。

3.5.5..OBJTEST,..OBJTEST是指定的项目产生的EXE文件和MAP文件的路径和名称,它们分别是TEST.EXE和TEST.MAP,并保存在OBJ目录下。

3.5.6C:BC31LIBEMU.LIBC:BC31LIBMATHL.LIBC:BC31LIBCL.LIB是链接时需要的库文件,必须令路径符合BorlandC的安装路径,如果安装在非推荐目录,必须更改蓝色的路径部分。其中EMU为8087仿真库,MATHL为数学函数库,CL为TurboC在Large模式下的运行库。

3.6第五步,修改TEST.MAK文件,这是BorlandC的Make文件,关于Make文件的格式及编写方法请参考相关书籍,这里仅介绍一些配置有关的内容,打开文件可以看到:

#############################################################################

#TOOLS

#############################################################################

BORLAND=C:BC31

CC=$(BORLAND)BINBCC

ASM=$(BORLAND)BINTASM

LINK=$(BORLAND)BINTLINK

TOUCH=$(BORLAND)BINTOUCH

#############################################################################

#DIRECTORIES

#############################################################################

TARGET=..TEST

SOURCE=..SOURCE

WORK=..WORK

OBJ=..OBJ

LST=..LST

OS=SOFTWAREuCOS-IISOURCE

PC=SOFTWAREBLOCKSPCBC45

PORT=SOFTWAREuCOS-IIIx86LBC45

如果你得BorlandC没有安装在推荐安装的目录,需要更改BORLAND=C:BC31这一句,例如如果安装在E:BorlandC31,则将BORLAND=C:BC31改为BORLAND=E:BorlandC31。

CC=$(BORLAND)BINBCC:这是编译器的名称及路径,一般不更改

ASM=$(BORLAND)BINTASM:这是汇编器的名称及路径,一般不更改

LINK=$(BORLAND)BINTLINK:这是链接器的名称及路径,一般不更改

TARGET=..TEST:项目文件目录,如果路径不是按推荐方式,必需要更改路径

SOURCE=..SOURCE:源文件目录,如果路径不是按推荐方式,必需要更改路径

WORK=..WORK:项目工作目录,MAKETEST.BAT自动编译时全部源文件都复制到这个目录,这个设定必须必须和MAKETEST.BAT中设定相一致

OBJ=..OBJ:目标代码目录,这个设定必须和MAKETEST.BAT中设定相一致

LST=..LST:列表文件目录,这个设定必须和MAKETEST.BAT中设定相一致

OS=SOFTWAREuCOS-IISOURCE:操作系统源文件目录,必须保证路径的正确,如果你的开发包没按推荐方式安装,必须更改这个设定为实际安装的目录。

PC=SOFTWAREBLOCKSPCBC45:与PC有关的源文件目录,必须保证路径的正确,如果你的开发包没按推荐方式安装,必须更改这个设定为实际安装的目录。

PORT=SOFTWAREuCOS-IIIx86LBC45:与处理器有关源文件目录,必须保证路径的正确,如果你的开发包没按推荐方式安装,必须更改这个设定为实际安装的目录。开发包中还有一个浮点的处理器文件目录Ix86L-FP。这2个目录是跟移植密切相关的,相当于BSP(板极开发包)。

3.7第六步,配置MAKETEST.BAT,打开可以看见

MD..WORK[!--empirenews.page--]

MD..OBJ

MD..LST

CD..WORK

COPY..TESTTEST.MAKTEST.MAK

C:BC31BINMAKE-fTEST.MAK

CD..TEST

首先是建立..WORK..OBJ..LST三个目录,这个目录的名称和路径必须同TEST.MAK一致,然后进入..WORK目录,并将..TEST目录中的TEST.MAK复制到这里,最后执行BorlandC的Make程序,自动进行编译和链接,这里面还是要注意C:BC31的路径问题。

3.9第八步,进行相关应用程序的开发就可以了,具体的可以参见Test.c这个文件,如果你的项目包括多个源文件,最好是在Test.c中用#include语句把他们都包含进来,否则就要更改Make文件TEST.MAK和其他几个设置文件,如果你确需如此,可以自己尝试一下,这里不再列出。

3.10最后,运行MAKETEST.BAT就可以在TEST目录下生成TEST.EXE文件。

4其它

有幸还有许多网友都在PC下用BorlandC实现了激动人心的调试开发,网友Hcompute把它的心得写了出来,大家也可以参考一下这篇文章PC环境下用BC3.1编译连接uC/OS-II源文件。

还有更多关于操作系统本身的应用问题,大家尽可以参考它的电子书中文版英文版

另外这篇文章写作很匆忙,基本是一气呵成的,难免存在很多错误,其中的一些观点由于本人水平有限,可能存在一些错误,在此,我欢迎看到这篇文章并发现问题或错误的朋友及时指正,以免误导别人,同时也欢迎读罢有所感悟的朋友积极来信,提出你的观点和看法,让我们共同努力,找到uC/OS开发的最好途径。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

获得全部六个Microsoft Solutions Partner(微软解决方案合作伙伴)称号 印度班加罗尔2023年3月6日 /美通社/ -- 领先的现代化和数字工程公司...

关键字: 微软 SOFTWARE MICROSOFT AZURE

Sonata将提供端到端技术环境支持,帮助GCX完成从传统技术和平台的迁移并实现战略业务转型 印度班加罗尔2022年11月28日 /美通社/ -- 全球IT服务和技术解决方...

关键字: SOFTWARE 管网 BSP 数字化

全球IT服务和技术解决方案公司Sonata Software宣布其印度班加罗尔全球村园区最先进的新开发中心启用。这家新开发中心占地5388平方米,拥有600多个工作站,并且在设计上考虑了更好的团队合作。新中心将专注于为其...

关键字: 软件开发 数字化 SOFTWARE MT

(全球TMT2022年10月20日讯)Arasan Chip System宣布立即推出Testmetrix C-PHY v2.0/D-PHY v2.5 Combo HDK和符合性测试平台,支持使用Arasan的Tota...

关键字: STM TEST AN COM

领先的半导体IP核提供商Arasan Chip Systems今天宣布,其MIPI DSI-2、CSI-2和C-PHY/D-PHY Combo IP已在Testmetrix...

关键字: STM TEST AN IP核

(全球TMT2022年10月13日讯)全球IT服务和技术解决方案公司Sonata Software宣布与爱尔兰的电信和ICT解决方案提供商eir evo签署协议,支持其CRM平台的标准化,将他们从Salesforce迁...

关键字: CRM SOFTWARE MICROSOFT EV

加利福尼亚州埃尔塞贡多, Sept. 27, 2022 (GLOBE NEWSWIRE) -- Phoenix Software International, Inc.今天宣布自2022年9月30日起普遍提供JES3pl...

关键字: PHOENIX SOFTWARE OS INTERNATIONAL

罗马尼亚布加勒斯特2022年9月30日  /美通社/ -- 专注于金融科技、5G和数字转型的全球领先软件产品和数字服务公司PureSoftware宣布在罗马尼亚布加...

关键字: SOFTWARE 5G BSP TE

Sonata Software凭借卓越成绩和创新获得微软嘉奖。  印度班加罗尔2022年9月22日 /美通社/ -- Sonata Software是一家全球IT...

关键字: 微软 PLATFORM BSP SOFTWARE

(全球TMT2022年8月3日讯)持续质量测试云平台LambdaTest宣布,快如闪电的智能测试编排平台HyperExecute将在Microsoft Azure市场上市。Microsoft Azure市场是一家在线商...

关键字: 微软 TEST AZURE ECU
关闭
关闭