ucOS-II 在 STM32 上的移植
哈尔滨工业大学军用电器研究所:周慧德
作为搭建 STM32 实验平台工作的一部分,这篇文档主要描述 ucOS-II 在
STM32 上移植的要点和注意事项。
1 移植背景
ucOS-II 版本号为 2.76,使用的编译和调试环境为 IAR Embedded Workbench
For ARM Evaluation 4.42A,目标芯片为 STM32F103VB,目标板为从北京微芯力
科公司购买的 NE-STR750 开发板。
2 对 ucOS-II 的裁剪
当前的系统文件中,统计任务被关闭,若实际中需要使用,可通过更改
Source\os_cfg.h 文件中的 OS_TASK_STAT_EN 和相关设置来恢复;此外,空闲
任务的堆栈长度、消息队列、邮箱、信号量等的设置也在这个文件中,可根据实
际情况适当更改。相关设置和使用请详见邵贝贝编写的 ucOS-II 中文手册。
本次移植裁掉了系统的 FLAG、MUTEX 和存储管理的部分,由于它们的源
文件已被删除,即使修改 Source\os_cfg.h 文件中的相关设置也不能恢复。
3 注意事项
开、关中断和任务级任务调度使用了 Cortex 内核的软中断资源,ucOS-II 的
时钟节拍使用了 Cortex 内核的 SysTick 资源,它们分别占用最高优先级(0)和最
低优先级(255),所以在使用其它中断时,要避免使用这两个优先级。
ucOS-II 的程序放在 Source 文件夹内,针对 ARMCortex-M3 和 STM32 的移
植程序分别放在 ARM 和 STM32 文件夹呢。
如图 1 所示,在工程文件夹中加入移植程序源文件,并如图 2 所示,在工程
源文件中加入红框内的所有文件,在自己所写的程序中添加”includes.h”头文件。
在工程设置时,在如图 3 所示的位置,将头文件所在路径输入。
图 1 工程文件夹
图 2 示例工程截图
图 3 头文件设置