USTC 中国人 μC/OS-I分析 李曦 lixx@ustc.edu.cn infolab@cs.ustc
mC/OS-Ⅱ分析 李曦 llxx@ustc.edu.cn UnRegistered infolab@cs.ustc
本节提要 USTO 1 μC/OS-Ⅱ简介 2 μC/OS-Ⅱ内核结构 3 μC/OS-Ⅱ任务管理 4 C/OS-Ⅱ时间管理 5 μC/OS-Ⅱ任务通信与同步 6 μC/OS-Ⅱ内存管理 7 μC/OS-Ⅱ移植
本节提要 11 33 22 55 44 77 mC/OS-Ⅱ简介 mC/OS-Ⅱ内核结构 mC/OS-Ⅱ任务通信与同步 mC/OS-Ⅱ任务管理 mC/OS-Ⅱ时间管理 mC/OS-Ⅱ移植 UnRegistered 66 mC/OS-Ⅱ内存管理
uC/OSI的非功能性特点(一) 基于优先级的可抢占实时多任务内核 - 微内核体系 ·任务调度和管理、时钟管理、任务同步与通信、内存管理和中断 服务等 -无MMU和外设 ·没有图形界面、网络功能和文件系统等 -全部函数调用与服务的执行时间具有可确定性。 -最多支持64个任务,分别对应优先级0~63 ·各任务的优先级必须唯 一其中0为最高优先级 一目前这一版本保留8个给系统,应用程序最多可以有56个任务。 -不允许同优先级:不支持时间片轮转调度法 ·静态分配优先级:固定优先级 一但为了消除优先级翻转,支持动态优先级 ·允许每个任务有各自的栈空间。 -事件驱动:非轮询 llxx@ustc.edu.cn 3/90
llxx@ustc.edu.cn 3/90 • 基于优先级的可抢占实时多任务内核 –微内核体系 • 任务调度和管理、时钟管理、任务同步与通信、内存管理和中断 服务等 –无MMU和外设 • 没有图形界面、网络功能和文件系统等 –全部函数调用与服务的执行时间具有可确定性。 –最多支持64个任务,分别对应优先级0~63 • 各任务的优先级必须唯一 – 其中0为最高优先级 – 目前这一版本保留8个给系统,应用程序最多可以有56个任务。 –不允许同优先级:不支持时间片轮转调度法 • 静态分配优先级:固定优先级 – 但为了消除优先级翻转,支持动态优先级 • 允许每个任务有各自的栈空间。 –事件驱动:非轮询 mC/OSII的非功能性特点(一) UnRegistered
uC/OS的性能特点(二) 中断管理 ●中断可以使正在执行的任务暂时挂起。 。如果优先级更高的任务被该中断唤醒, 则高优先级的任务在中断嵌套全部 退出后立即执行(抢占式)。 ●中断嵌套层数可达255层。 中断响应 任务调度 任务执行 外部事件2 响应输出2 可移植性(Portab1e) 可裁剪(Scalable) -通过条件编译(#define)实现 ● 可固化(ROMable) ● 稳定性与可靠性 llxx@ustc.edu.cn 4/90
llxx@ustc.edu.cn 4/90 l 中断管理 l 中断可以使正在执行的任务暂时挂起。 l 如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部 退出后立即执行(抢占式)。 l 中断嵌套层数可达255层。 • 可移植性(Portable) • 可裁剪(Scalable) – 通过条件编译(#define)实现 l 可固化(ROMable) l 稳定性与可靠性 mC/OS的性能特点(二) 中断响应 任务调度 任务执行 外部事件2 响应输出2 UnRegistered
uC/OS-II的文件结构 应用程序软件 UC/OS-II Hardware Independent Software (与处理器无关的代码) uC/0S-II设置 Applications OS CORE.C uCOS II.C (与应用相关的代码) OS MBOX.C uCOS II.C UO System RTOS libraries OS MEM.C OS Q,C OS CFG.H TCPAP OS SEM.C OS TASK.C INCLUDES.H! Stack OS_TIME.C File System RTOS Kernel Hardware Abstraction Layer:BSP&Device Driver uC/OS-II移植 (与处理器相关的代码) scsI Flash MMU Cache Serial Ethernet Device OS CPU.H Driver Driver Driver Driver Driver Driver Drvers OS CUP A.ASM OS_CPU_C.C Hardware 软件 硬件 CPU 时钟 5/90
llxx@ustc.edu.cn 5/90 mC/OS-II的文件结构 UnRegistered