APP下载

实时操作系统uC/OS—II在MC9S12DG128B上的移植

2017-10-21胡梦寒

科技风 2017年8期
关键词:堆栈内核嵌入式

胡梦寒

摘 要:本文讨论了将一个具有高可靠性的可剥夺型多任务实时内核uC/OS-II在Freescale单片机MC9S12DG128B上移植的原理和方法。给出了一个以Freescale Code Warrior 为编译器,MC9S12DG128B为处理器的对uC/OS-II系统进行移植的具体实例。

关键词:uC/OS-II;MC9S12DG128B;移植

嵌入式操作系统近年来备受人们关注,其开发出来的产品已经应用到生活的各个角落。uC/OS-II系统作为嵌入式操作系统的一种,具有高可靠性、稳定性和实时性。MC9S12DG128B是16位单片机,具有资源丰富、功能强大、运行稳定且价格低廉的特点。本文将介绍uC/OS-II实时内核在MC9S12DG128B上的移植过程。

1 移植前的准备工作

1.1 uC/OS-II系统特点

uC/OS-II实时操作系统使用可剥离型内核,CPU总是运行多个任务中优先级最高的任务。它具有很强的可移植性、内核可裁减性、可确定性的特点,并提供很多系统服务。

1.2 MC9S12DG128B硬件资源

MC9S12DG128B是16位单片机,DG128CPU具有6个寄存器,13种寻址方式和400多条指令,同时,DG128具有丰富的I/O接口,MC9S12DG128B典型的内部时钟频率为16MHZ,支持定时中断,具有128k的Flash,8k字节的RAM和2k字的EEPROM。

1.3 移植过程编译器

开发编译工具:CodeWarrior For HCS12X_v4.7。

1.4 uC/OS-II模块

uC/OS-II的软硬件体系结构如图1所示。应用程序处于系统的顶层,无限循环设计,每个任务独占CPU。

2 具体移植步骤

以下是具体的移植步骤,与硬件相关的各个文件需修改。

2.1 文件OS_CPU.H

包含与处理器相关的、#define语句定义的常数、宏以及数据类型。

2.2 数据类型定义

不同编译器会使用不同的字节长度来表示同一数据类型。uC/OS-II的移植包含一系列的数据类型定义。

2.3 堆栈单位

OS_STK的数据类型必与须处理器的寄存器长度一致。

2.4 堆栈方向

需预先设定堆栈的增长方向,因为不同处理器,数据入堆栈时堆栈指针的增长方向不一样。

2.5 临界区

需定义两个保护临界区的宏。

2.6 设置OS_TASK_SW()

#define OS_TASK_SW() asm(swi)

2.7 文件OS_CPU_A.ASM

uC/OS-II移植要求编写四个汇编函数,分别是OSTickISR()、OSStartHighRdy()、OSCtxSw()和OSIntCtxSw(),移植过程将对相应函数进行修改。

3 实验及其结果分析

为验证移植的正确性,本文将通过应用任务实验来实施验证。实验必须在确保C编译器,汇编编译器及链接器正常工作的情况下进行,测试修改过的移植函数在9S12环境下运行是否正常。

根据实验结果可以看出,任务TestTask1和TestTask2创建成功,证明OSTaskStkInit()、OSStartHighRdy()工作正常;TestTask1和TestTask2实现了任务切换,以及发生了时间中断(任务TestTask1运行两次后任务TestTask2运行一次),因此其它函数也正常运行,实验成功。由此可以得出结论,uC/OS-II在MC9S12DG128B上移植成功。

4 結语

本文介绍了uC/OS-II移植到MC9S12DG128B上的全过程,对从事嵌入式系统移植工作的开发人员有一定的参考价值。

参考文献:

[1] Jean J Labrosse.嵌入式操作系统uC/OS-II [M].第2版,北京:北京航空航天大学出版社,2005:283-316.

[2] 黄涛,徐宏吉.嵌入式实时操作系统移植技术的分析和应用[J].计算机应用,2003,(9):88-90.

[3] 邵贝贝.在MC68HC908GP32上移植uC/OS-II.单片机与嵌入式系統应用[J].单片机与嵌入式系统应用,2001,(11):69-75.

[4] 王宜怀,刘晓升,等.嵌入式系统-使用HCS12微控制器的设计与应用[M].北京:北京航空航天大学出版社,2003,1.

猜你喜欢

堆栈内核嵌入式
人民情怀:柳青为文为人的内核(评论)
初春
微软发布新Edge浏览器预览版下载换装Chrome内核
基于生成语法的句子理解机制
Windows栈缓冲区溢出攻击原理及其防范
缓冲区溢出安全编程教与学
嵌入式LINUX操作系统的研究
嵌入式组件技术的研究及应用
基于堆栈的24点游戏解决方案
“嵌入式系统概论”课程设计