基于ARM实时操作系统μCOSⅡ内核移植.docVIP

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

基于ARM实时操作系统μCOSⅡ内核移植   摘 要:本文研究了实时操作系统μC/OS-Ⅱ在ARM微处理器上的内核移植。首先介绍了实时操作系统μC/OS-Ⅱ和ARM7微处理器,在此基础上,分析了内核移植的条件和主要内容,最后对代码移植的正确性进行测试。   关键词:ARM;μC/OS-Ⅱ;移植      1 引言      嵌入式系统是一个分散的工业,充满了竞争、机遇与创新,没有哪个系列的处理器和操作系统能够垄断全部市场,因此留给各个公司的创新余地很大。研究嵌入式系统,一个必不可少的基础工作就是实现嵌入式操作系统在相关处理器平台上的移植。本文基于目前应用非常广泛的ARM处理器体系结构,对μC/OS-II嵌入式实时操作系统内核的移植工作做了分析和介绍,并对代码移植的正确性进行验证。      2 μC/OS-Ⅱ操作系统简介      μC/OS-Ⅱ是一个著名的源代码开放的嵌入式实时操作系统(RTOS),由美国人Jean J.Labrosse编写出来。μC/OS-Ⅱ读作micro controller OS 2,意为微控制器操作系统版本 2。μC/OS-Ⅱ结构小巧,适合小型控制系统,具有执行效率高,占用空间小,实时性能优良和可扩展性能强等特点,具有可剥夺实时内核,提供了实时系统所需的基本功能,其中包括任务的调度与管理,时间管理,任务间同步与通信,内存管理和中断服务等功能。   μC/OS-Ⅱ可用于8位、16位和32位单片机或DSP。良好的持续发展能力、高性能的内核以及友好的用户开发坏境,使其迅速在嵌入式实时操作系统领域占据一席之地。      3 ARM7微处理器简介      ARM(Advanced RISC Machines),是英国Advanced RISC Machines Limited公司设计开发的通用32位RISC微处理器体系结构。ARM处理器因其卓越的性能和显著优点,已成为高性能、低功耗、低成本嵌入式处理器的代名词,成为32位嵌入式应用领域、全球范围内最广泛使用的处理器。ARM7系列微处理器采用亚微米制造工艺,是一种低电压、低功耗的32位RISC处理器,其内核基于ARMV4T(冯?诺依曼)体系结构,分为3级流水线,最高时钟频率为66MHz,使用3V/5V供电模式,最适合用于对价位和功耗要求较高的消费类应用。ARM7系列微处理器具有如下特点:具有嵌入式ICE-RT逻辑,调试开发方便;极低的功耗,适合对功耗要求较高的应用,如便携式产品;能够提供0.9MIPS/MHz的三级流水线结构;代码密度高并兼容16位的Thumb指令集;对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等;指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代;主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。      4 实时操作系统μC/OS-Ⅱ在ARM上的内核移植      4.1 移植的条件   处理器的C编译器能产生可重入代码;在程序中用C语言就可以打开或关闭中断;处理器支持中断,并且能够产生定时中断;处理器能够容纳一定数量的硬件堆栈;处理器有将堆栈指针和其他CPU寄存器存储和读出到堆栈(或者内存)的指令。   4.2 移植μC/OS-Ⅱ主要包括的内容   重新定义一系列与编译器相关的数据类型。具体定义代码如下:   typedef unsigned char BOOLEAN;   typedef unsigned char INT8U;/*8位无符号整数*/   typedef signed char INT8S;/*8位有符号整数*/   typedef unsigned short INT16U;/*16位有符号整数*/   typedef signed short INT16S;/*16位无符号整数*/   typedef unsigned long INT32U;/*32位无符号整数*/   typedef signed long INT32S;/*32位有符号整数*/   typedef float FP32;/*单精度浮点数*/   typedef double FP64;/*双精度浮点数*/   设置一个常量来标识堆栈增长方向。   typedef unsigned int OS_STK /*堆栈的单位,堆栈入口宽度为16位*/   #define OS STK GROWTH 1/*定义堆栈的增长方向,1表示高地址向低地址增长*/   声明用于开关中断和任务切换的宏。具体代码如下:   #define OS_ENTER_CRITICAL() ARMEnableInt()

文档评论(0)

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

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

1亿VIP精品文档

相关文档