您的位置 首页 被动

uCOSii的移植进程详解

uCOSii的移植过程详解-产生时钟节拍的定时中断来自微控制器内部, 但并非来自V2 内核内部, 可以用实时时钟产生定时中断,也可以用片内的外设模块定时器单元来产生定时中断,这部分代码显然与硬件相关, 移植时要自己写

C/ OS 是一种多使命实时操作体系。内核源代码揭露、短小精干、可裁剪、执行时间可确认, 可移植性较强, 十分适用于一些中小型嵌入式体系开发。uC/OS 能够移植到8~ 64 位的不同类型、不同规划的嵌入式体系, 并能在大部分的8 位、16 位、32 位, 乃至64 位的微处理器和DSP 上运转[ 1] 。

MCF52235是飞思卡尔公司Co ldf ire 系列32 位单片机解决方案的嵌入式微控制器, 选用的是V2 版别的RISC 内核。MCF52235 内部有32 KB SRAM 和256 KB FLASH, 而且集成了规范的Coldfire外围设备, 包括三个合适中长距离通讯的SCI, 一个I2 C 和一个用于体系内部和外围设备通讯的Q SPI。在60 Hz的中心频率下, MCF52235 的处理才能为56 MIPS, 具有较高的性能价格比[ 24] 。MCF52235 关于移植C/ OS 来说有满足的

RAM 和FLASH, 且有较快的处理速度和较低的本钱,所以关于嵌入式运用体系的开发来说, 嵌入C/ OS到MCF52235 微控制器是一个不错的挑选。uC/ OS 的体系结构要完成C/ OS 向MCF52235 的移植, 需求做两方面的作业: 一是从头界说内核的巨细和功用; 二是为内核编写与硬件相关的代码。C/ OS 的文件结构如图1 所示。能够看到, C/ OS 与CPU 类型无关的C 代码文件COS . C 包括许多文件, 它们是C/ OS 的内核和许多功用函数, 其间前三个文件是实时内核、使命办理和时钟节拍, 这三个文件是必定要用的。后边6 个功用函数用于使命间的通讯, 运用程序中或许只用到其间的几个, 不必的能够不包括进去, 避免编译时生成没用的代码。这部分代码与CPU 类型无关, 在移植时, 这些文件不要改动。配置文件OS_CFG. H 需求依据运用要求来进行,首要作用是确认C/ OS 供给的体系功用函数, 运用程序用哪些和不必哪些, 这个文件移植时需求修正。与CPU 类型有关的代码文件首要有三个: OS _CPU. H, OS_CPU_A. ASM 和OS_CPU_C. C。文件界说用于特定CPU 的数据类型来界说相关的宏。OS _CPU_A . ASM 是用汇编言语写的与硬件有关的代码,OS_CPU_C. C 是用C 言语写的与硬件有关的代码。因为移植运用C 穿插编译东西, 在C 代码中能够刺进汇编句子, 在移植中可将这两个文件合并成一个文件[ 5] 。

发生时钟节拍的守时中止来自微控制器内部, 但并非来自V2 内核内部, 能够用实时时钟发生守时中止,也能够用片内的外设模块守时器单元来发生守时中止,这部分代码明显与硬件相关, 移植时要自己写[ 6] 。

uCOSii的移植进程详解

2 移植进程

所谓移植, 便是使一个实时内核能在某个微处理器或微控制器上运转。为了便利移植, 大部分的C/ OS代码是用C 言语写的, 但仍需求用C 和汇编言语写一些与处理器相关的代码, 这是因为C/ OSII 在读写处理器寄存器时只能经过汇编言语来完成 。移植进程首要包括移植前的预备、BSP ( 板级支撑包) 的编写和与处理器相关代码的修正和编写。C/OS 中心代码、与CPU 相关的接口程序、BSP 和用户运用程序之间的联系如图2 所示。

移植前的预备

进入C/ OS 官方网站下载C/ OS 源代码。翻开Codew arrior 6. 4 树立MCF52235 的工程文件, 然后把C/ OS 的源代码文件加入到工程里边[ 8] 。其间有几个当地需求改动:

( 1) 下载的源代码中os_cfg _r. h 改为o s_cfg. h;os_dbg_r. c改为os_dbg. c。

( 2) 因为会引起重复界说过错, 需求把源代码中重复包括的文件注释掉。

( 3) 需求在INT ERNAL_FLASH 形式下编译, 而不能在RAM 形式下, 否则会发生溢出过错。

uCOSii的移植进程详解

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/348401.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部