实时操作系统uC/OS—II在MC9S12DG128B上的移植
2017-10-21胡梦寒
胡梦寒

摘 要:本文讨论了将一个具有高可靠性的可剥夺型多任务实时内核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 堆栈方向
需预先设定堆栈的增长方向,因为不同处理器,数据入堆栈时堆栈指针的增长方向不一样。……
