μCOSII在x上的移植.docVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
μCOSII在x上的移植

μC/OS-II在80x86上的移植 本章将介绍如何将μC/OS-II移植到Intel 80x86系列CPU上,本章所介绍的移植和代码都是 针对80x86的实模式的,且编译器在大模式下编译和连接。本章的内容同样适用于下述CPU: 80186 80286 80386 80486 Pentium Pentium II 实际上,将要介绍的移植过程适用于所有与80x86兼容的CPU,如AMD,Cyrix,NEC (V-系列) 等等。以Intel的为例只是一种更典型的情况。80x86 CPU每年的产量有数百万,大部分用于个 人计算机,但用于嵌入式系统的数量也在不断增加。最快的处理器(Pentium系列)将在2000年 达到1G的工作频率。 大部分支持80x86(实模式)的C编译器都提供了不同的内存使用模式,每一种都有不同的内 存组织方式,适用于不同规模的应用程序。在大模式下,应用程序和数据最大寻址空间为1Mb, 程序指针为32位。下一节将介绍为什么32位指针只用到了其中的20位来寻址(1Mb)。 本章所介绍的内容也适用于8086处理器,但由于8086没有PUSHA指令,移植的时候要用几条 PUSH指令来代替。 图F9.1显示了工作在实模式下的80x86处理器的编程模式。所有的寄存器都是16位,在任务切换时 需要保存寄存器内容。 图F9.1  80x86 实模式内部寄存器图. 80x86提供了一种特殊的机制,使得用16位寄存器可以寻址1Mb地址空间,这就是存储器分段 的方法。内存的物理地址用段地址寄存器和偏移量寄存器共同表示。计算方法是:段地址寄存 器的内容左移4位(乘以16),再加上偏移量寄存器(其他6个寄存器中的一个,AX,BP,SP, SI,DI或IP)的内容,产生可寻址1Mb的20位物理地址。图F9.2表明了寄存器是如何组合的。段 寄存器可以指向一个内存块,称为一个段。一个16位的段寄存器可以表示65,536个不同的段,因 此可以寻址1,048,576字节。由于偏移量寄存器也是16位的,所以单个段不能超过64K。实际操作 中,应用程序是由许多小于64K的段组成的。 图F 9.2  使用段寄存器和偏移量寄存器寻址. 代码段寄存器(CS)指向当前程序运行的代码段起始,堆栈段寄存器(SS)指向程序堆栈段 的起始,数据段寄存器指向程序数据区的起始,附加段寄存器(ES)指向一个附加数据存储区。 每次CPU寻址的时候,段寄存器中的某一个会被自动选用,加上偏移量寄存器的内容作为物理 地址。文献中会经常发现用段地址—偏移量表示地址的方法,例如1000:00FF表示物理地址 0x100FF。 9.00 开发工具 笔者采用的是Borland C/C++ V3.1和Borland Turbo Assembler汇编器完成程序的移植和测试, 它可以产生可重入的代码,同时支持在C程序中嵌入汇编语句。编译完成后,程序可在PC机上 运行。本书代码的测试是在一台Pentium-II计算机上完成的,操作系统是Microsoft Windows 95。 实际上编译器生成的是DOS可执行文件,在Windows的DOS窗口中运行。 只要您用的编译器可以产生实模式下的代码,移植工作就可以进行。如果开发环境不同,就 只能麻烦您更改一下编译器和汇编器的设置了。 9.01 目录和文件 在安装μC/OS-II的时候,安装程序将把和硬件相关的,针对Intel 80x86的代码安装到 \SOFTWARE\uCOS-II\Ix86L目录下。代码是80x86实模式,且在编译器大模式下编译的。移植部 分的代码可在下述文件中找到:OS_CPU.H, OS_CPU_C.C, 和 OS_CPU_A.ASM。 9.02 INCLUDES.H文件 INCLUDES.H 是主头文件,在所有后缀名为.C的文件的开始都包含INCLUDES.H文件。使用 INCLUDES.H的好处是所有的.C文件都只包含一个头文件,程序简洁,可读性强。缺点是.C文件 可能会包含一些它并不需要的头文件,额外的增加编译时间。与优点相比,多一些编译时间还 是可以接受的。用户可以改写INCLUDES.H文件,增加自己的头文件,但必须加在文件末尾。程 序清单L9.1是为80x86编写的INCLUDES.H文件的内容。 程序清单L 9.1 INCLUDES.H. #include stdio.h #include string.h #include ctype.h #i

您可能关注的文档

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档