嵌入式操作糸统一UC/OS What is uc/OS? u micro C: control uC/OS:适合于小的、控制器的操作系统 小巧 公开源代码,详细的注解 可剥夺实时内核 ■可移植性强 多任务 ■确定性 2002/11
嵌入式操作系统—uC/OS 2002/11 1 What is uC/OS? u: Micro C:control uC/OS : 适合于小的、控制器的操作系统 ◼ 小巧 ◼ 公开源代码,详细的注解 ◼ 可剥夺实时内核 ◼ 可移植性强 ◼ 多任务 ◼ 确定性
嵌入式操作糸统一UC/OS The Story of uc/Os 美国人 Jean labrosse1992年编写的 商业软件的昂贵 应用面覆盖了诸多领域,如照相机、医疗器 械、音响设备、发动机控制、高速公路电话 系统、自动提款机等 1998年uC/OS,目前的版本uC/OS-IV2.51 www.ucos-i.com 2002/11
嵌入式操作系统—uC/OS 2002/11 2 The Story of uC/OS ◼ 美国人Jean Labrosse 1992年编写的 ◼ 商业软件的昂贵 ◼ 应用面覆盖了诸多领域,如照相机、医疗器 械、音响设备、发动机控制、高速公路电话 系统、自动提款机等 ◼ 1998年uC/OS-II,目前的版本uC/OS-II V2.51 ◼ www.uCOS-II.com
嵌入式操作糸统一UC/OS 概要 ■内核结构-任务以及调度机制 任务间通信 ■UC/OS的移植 在PC机上运行uCOS 2002/11 3
嵌入式操作系统—uC/OS 2002/11 3 概要 ◼ 内核结构-任务以及调度机制 ◼ 任务间通信 ◼ uC/OS的移植 ◼ 在PC机上运行uC/OS
嵌入式操作糸统一UC/OS 任务task 典型的一个无限循环 void mytask(void *pdata) for (it do something; waiting do something; 支持64个任务,每个任务一个特定的优先级。优先级 越高,数字越小 系统占用了两个任务,空闲任务和统计任务 2002/11
嵌入式操作系统—uC/OS 2002/11 4 任务task ◼ 典型的一个无限循环。 void mytask(void *pdata) { for (;;) { do something; waiting; do something; } } ◼ 支持64个任务,每个任务一个特定的优先级。优先级 越高,数字越小 ◼ 系统占用了两个任务,空闲任务和统计任务
嵌入式操作糸统一UC/OS 任务的数据结构—任务控制块 任务控制块 os tcb,包括 任务堆栈指针,状态,优先级,任务表 位置,任务链表指针等, 所有的任务控制块分为两条链表,空闲 链表和使用链表 新任务TCB TCBO TCBI nex OSTCBFreelist 图43TCB的双向链表结构 2002/11
嵌入式操作系统—uC/OS 2002/11 5 任务的数据结构—任务控制块 ◼ 任务控制块 OS_tcb,包括 任务堆栈指针,状态,优先级,任务表 位置,任务链表指针等。 ◼ 所有的任务控制块分为两条链表,空闲 链表和使用链表。 OSTCBFreeList TCB0 TCB1 TCBn 新任务TCB (1) 空 (2) (3) next pre 图 4.3 TCB的双向链表结构