UCOS-ii2.5.2内核目录结构和组成
1.uCOS-II Source->source:(与处理器类型无关的代码)
********************************************************************************** OS_CORE.C 系统初始化,开启多任务环境等的代码 ********************************************************************************** OS_FLAG .C 事件标志组管理代码 ********************************************************************************** OS_MBOX .C 消息邮箱管理代码 ********************************************************************************** OS_MEM.C 内存管理代码 ********************************************************************************** OS_MUTEX.C 互斥型信号量管理代码 ********************************************************************************** OS_Q.C 消息队列管理 ********************************************************************************** OS_SEM.C 信号量管理代码 ********************************************************************************** OS_TASK.C 任务管理代码 ********************************************************************************** OS_TIME.C 事件管理代码 ********************************************************************************** uCOS_II.C 包含内核的其它C语言源文件 *********************************************************************************
2 uCOS II配置文件(与应用程序有关)
********************************************************************************** INCLUDES .H 系统的全局头文件,在所有的源码中包含********************************************************************************** OS_CFG .H UCOS系统的全局配置*********************************************************************************
3 移植uCOS II (与处理器有关的代码)
********************************************************************************** OS_CPU .h 包含与处理器相关的常量、宏及结构体定义********************************************************************************** OS_CPU_C.C 多任务栈初始化等与处理器有关的代码********************************************************************************** OS_CPU_A.asm 汇编语言编写的启动任务、任务切换等四个重要函数*********************************************************************************
4 μC/OS-II组成
μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。
1) 核心部分(OSCore.c) 是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里。
2) 任务处理部分(OSTask.c) 任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为μC/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。
3) 时钟部分(OSTime.c) μC/OS-II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。
4) 任务同步和通信部分 为事件处理部分,包括信号量、邮箱、消息队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。
5) 与CPU的接口部分 是指μC/OS-II针对所使用的CPU的移植部分。由于μC/OS-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。