实时多任务操作系统
的移植与扩展
演讲人:刘淼(博创科技)
threewater@up-tech.com
2004.5.22
2004.5.22
实时操作系统(RTOS)
RTOS的基本特征:
• 高效的任务管理
• 支持多任务
• 优先级管理
• 任务调度:基于优先级的占先式调度、时间片轮转调度的算法
• 支持快速而确定的上下文切换
• 快速灵活的任务间通信
• 信号量:互斥、计数器
• 通信机制:消息队列、管道等
• 系统时钟和定时器
• 高度的可剪裁性、动态链接与部件增量加载
• 快速有效的中断和异常事件处理
uCOS-II简介
• 为嵌入式应用设计的专用操作系统
• 占先式,多任务,强实时性
• 90%以上的代码用C写成,移植方便
• 可裁剪,ROM化
• 源码中注释详细,便于学习
• 代码精简——对uCOS 2.76的统计:8700多行代
码,16个文件。易懂易学。
uCOS-II用最精简的代码展示了多任务操作系统最
核心的内容
uC/OS-II提供的系统服务
• 信号量——带互斥机构的信号量
• 解决优先级倒置的问题
• 事件标志
• 消息信箱
• 消息队列
• 内存管理
• 时钟管理
• 任务管理
优先级反转
Priority Inversion
(4)
(12)
(8)
(1)
(6)
(10)
Task 1 (H)
Task 2 (M)
Task 3 (L)
Task 3 Get Semaphore
(2)
Task 1 Preempts Task 3
(3)
Task 1 Tries to get Semaphore
(5)
Task 3 Resumes
(9)
Task 3 Releases the Semaphore
(11)
Task 2 Preempts Task 3
(7)
uCOS-II的系统需求
• uCOS-II系统内核小,需要很少的系统资源
• 在51、AVR、MSP430等单片机上都有成功的移植
• UP-NetARM3000平台完全适合uCOS-II
• 67.5MHz、32位的ARM7TDMI
• 8/32MB SDRAM
• 2MB NOR Flash+16MB Nand Flash
uCOS-II在ARM上的移植
• 所谓移植,是指使一个实时操作系统能够在某个
微处理器平台上运行。
• uCOS-II的主要代码都是由标准的C语言写成的,
移植方便——只需要编写与ARM体系结构相关部分
的代码
移植µCOS-II满足的条件
• 处理器的C编译器能产生可重入代码
• 在程序中可以打开或者关闭中断
• 处理器支持中断,并且能产生定时中断(通常在
10—1000Hz之间)
• 处理器支承能够容纳一定量数据的硬件堆栈
• 处理器有将堆栈指针和其他CPU寄存器存储和读出
到堆栈(或者内存)的指令