- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 μC/OS-II的入门知识
μC/OS-II是一种跨平台的操作系统,很容易移植到不同架构的微处理器上。它是在PC机上开发和测试的,例子可在Windows环境下的DOS窗口内运行。C编译器使用的是Borland C/C++编译器,本书使用BC45,主要应用它的工具程序。
本章主要内容:
BC45编译器的使用
Make和makefile
初识μC/OS-II,实例演示
2.1 开发工具
采用Borland C/C++ V4.5(后简称BC45)的C编译器和Borland Turbo Assembler汇编器。这个编译器可产生可重入型代码,同时支持在C语言程序中嵌入汇编语句。
BC45下有3个重要的目录:bin、include、lib。Bin目录中为各个开发工具,include目录中为库代码的头文件,lib目录中为库文件。在开发C++的过程中,除了使用Borland C++IDE之外,还可以在DOS下直接用命令,达到编译及链接的效果,还有一些程序开发工具也非常实用。以下是本节要介绍的工具程序,这些程序都位于bin目录下。
BCC(Borland C Compiler)
Tlink(Linker)
TASM(Assembler)
MAKE
2.1.1 BCC编译器
BCC.是Borland C的编译器。
BCC的命令格式是:
BCC[Option[Option…]] filename[filename…]
其中,BCC是编译链接命令,该命令将起到bin目录下的bcc.exe的作用。filename表示文件名,必须在命令中包含至少一个文件的名字。文件的名字一般是带有.c后缀的c语言源程序。Option是选项,编译器支持的选项包括以下方面。
1.内存模式
BCC能够编译的内存模式如表2-1所示。
表2-1 内存模式
内存模式选项 描述 -mc 编译时用Compact内存模式 -mh 编译时用huge内存模式 -ml 编译时用large内存模式 -mm 编译时用medium内存模式 -mm! 编译时用medium内存模式;DS!=SS -ms! 编译时用small内存模式;DS!=SS -ms 编译时用small内存模式 -mt 编译时用tiny内存模式 -mt! 编译时用tiny内存模式;DS!=SS 2.宏定义
编译器支持的宏定义选项如表2-2所示。
表2-2 宏定义
宏定义选项 描述 -Dname 定义宏符号name为空字符串(Null string) -Dname==String 定义宏符号name为string -Vname 解除宏符号name的定义 3.目标码
编译器支持的目标码选项如表2-3所示。
表2-3 目标码
目标码选项 描述 -1 产生802186之实模式(Real Mode)目标码 -1- 产生8088/8086目标码 -2 产生80286的保护模式(Protected Mode) -a 强迫整数的长度,必须符号该机器的存取长度。 -b 将相同字符串合并,使程序大小便更小 -Fs 在全部的存储模式内,假设DS等于SS -f 程序运行浮点运算时如没80x87则模拟80x87的运行如有80x87则调用之 -f87 程序运行时浮点运算时使用80x87处理器 -f287 与-f87相同,但只能用于协处理器为80287以上者 -N 在调用函数时加上检查有否溢出(stack overflow) -p 强制使函数调用之参数传递方式为pascal。Pascal:代表函数之参数放置到堆栈(stack),顺序与传统C相反。 -X 产生overlay程序 -y 在目标文件存放源程序的行号,共调试之用,此举将是程序大小增大,但不影响运行效率。
4.优化
编译器支持的优化选项如表2-4所示。
表2-4 优化
优化选择 描述 -02 产生一运行速度最快的目标码 -01 产生最小的目标码 -0 将调整(Jump)跳到另一个跳转及永远运行不到程序,和不需要的调整都除掉。 -0d 将全部优化的参数设置都解除 -0l 压缩循环(Loop) -0m 将内容不变的变量移到循环之外 5.源代码
编译器支持的源代码选项如表2-5所示。
表2-5 源代码
源代码选项 描述 -A 源代码为ANSI结构 -A- 源代码为Borland C++ -AU 源代码为UNIX结构 -C 允许嵌套注释说明(Nest Comments) -in 变量或函数名有效长度为n(1≤n≤32),建议n不用小于8. 6.错误产生选项
此处的错误包括真正的错误(Error)及警告(Warning),如表2-6所示。
表2-6 错误选项描述
错误选项 描述 -gn 当编译时发生n个警告后就
文档评论(0)