uCOSii的移植过程详解

uCOSii的移植过程详解,第1张

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的移植过程详解,uCOSii的移植过程详解,第2张

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的移植过程详解,uCOSii的移植过程详解,第3张

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2645142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-12
下一篇 2022-08-12

发表评论

登录后才能评论

评论列表(0条)

保存