当前位置:
文档之家› 实时操作系统_uCOS-II-5
实时操作系统_uCOS-II-5
– 第四级 第五级
2
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
实时操作系统特点 任务管理 单击此处编辑母版文本样式 任务间同步和通信
– 第二级
– 第四级 定时器管理
多任务和基于优先级的任务调度
消息,事件和信号量 第三级 提供确定的任务切换时间
第五级
中断管理 存储管理
3
深圳市英蓓特信息技术有限公司
– 第二级
第三级
COS-II介绍
– 第四级 第五级
11
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
COS-II简介
COS -II 是 美国 一个名为Jean Labrosse的工程师开发 的实时操作系统.它以小内核,多任务, 丰富的系统服 务,容易使用等特点越来越受欢迎 单击此处编辑母版文本样式
9
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
EmbestIDE和RTOS的来自合Embest IDE完全支持源代码方式提供的RTOS,只需 要将RTOS的源代码纳入Embest IDE的工程管理目录中 单击此处编辑母版文本样式 ,和应用程序一起编译,即可调试RTOS及应用程序.
– 第二级
16
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
移植条件之一 ---- 可重入代码
可重入代码指的是可以被多个任务同时调用,而不会破坏 数据的一段代码,或者说代码具有在执行过程中打断后再 次被调用的能力. 单击此处编辑母版文本样式 int temp; 第三级 void swap (int *x,int*y) – 第四级 { 第五级 temp=*x; *X=*Y; *y=Temp; }
5
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
uCOS操作系统
简单,高效,易用 完全免费使用,提供全部源代码 单击此处编辑母版文本样式
– 支持64个任务 第二级
支持多种CPU 第三级 提供邮箱,信号量以及消息队列三种任务间通讯方式 – 第四级 第五级 无设备驱动程序,缺乏足够多的应用模块(如TCP/IP 协议以及GUI模块等等) 无技术支持
第三级 Embest – 第四级 IDE支持二进制码方式提供的RTOS,条件是 第五级 RTOS的二进制码是使用GNU工具链编译的,将该二进 制码文件作为库链接进Embest IDE应用工程,即可调试 RTOS及应用程序.
10
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
单击此处编辑母版文本样式
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
Embest IDE for ARM 研讨会系列
单击此处编辑母版文本样式
– 第二级
嵌入式实时操作系统 第三级
– 第四级 第五级
COS -II
1
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
单击此处编辑母版文本样式
– 第二级
RTOS介绍 第三级
typedef typedef typedef typedef typedef typedef
unsigned unsigned signed unsigned signed unsigned signed float double
char char char short short long long
– 第二级
第三级
COS-II移植
– 第四级 第五级
14
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
COS-II体系
应用软件
单击此处编辑母版文本样式 OS_CORE . C 核心代码
OS_MBOX – 第二级 . C
核心代码(处理器无关)
设置代码(应用相关)
OS_Q . C 第三级
第五级
中断可以使正在执行的任务暂时挂起.如果优先 级更高的任务被唤醒,则高优先级的任务在中断嵌 套全部退出后立即执行,中断嵌套可达255层. 公开源代码,可固化,可确定性,任务 栈,提供很多系统服务,稳定性和可靠性 强
13
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
单击此处编辑母版文本样式
. ASM
15
OS_CPU_C . C
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
移植的条件
1,处理器的C编译器能产生可重入代码
单击此处编辑母版文本样式
第三级
– 2,用C语言就可以打开和关闭中断 第二级
– 第四级 3,处理器支持中断并且能产生定时中断 第五级
4,处理器支持容纳一定量数据的硬件堆栈 5,处理器有将堆栈指针和其他CPU寄存 器读出和存储到堆栈或内存中的指令
OS_MEM . C
OS_SEM . C – 第四级 OS_TASK . C 第五级 OS_TIME . C uCOS_II . H
消息队列 存储管理 消息管理 信号量 任务调度 定时管理
OS_CFG . H INCLUDES . H
OS_CPU . H 移植代码(处理器相关)
OS_CPU . H OS_CPU_A OS_CPU_A . ASM OS_CPU_C . C
19
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
移植步骤之二 ---- OS_CPU_A.ASM OSStartHighRdy( ) 单击此处编辑母版文本样式
– 第二级 OSCtxSw( )
第三级
– 第四级 OSIntCtxSw() 第五级
OSStart( )调用本函数; OSStart( )负责使就绪状态的任务开始运行; OSStartHighRdy( )负责获取新任务的堆栈指针并 从堆栈指针中恢复新任务的所有处理器寄存器.
– 第二级
第三级 COS -II 实时系统的商业应用非常广泛,具有非常稳定 – 第四级 ,可靠的性能,成功应用于生命科学,航天工程等重大 第五级 科研项目中.由于其极小的内核,特别适用于对程序代 码存储空间要求极其敏感的嵌入式系统开发 OS-II是一款源码公开的实时操作系统
12
深圳市英蓓特信息技术有限公司
BOOLEAN; INT8U; INT8S; INT16U; INT16S; INT32U; INT32S; FP32; FP64;
#define OS_STK_GROWTH 0 #define OS_STK_GROWTH 1
/*从下往上*/ /*从上往下*/
四,定义OS_TASK_SW()宏
从低优先级任务切换到高优先级时调用 使用软中断直接将中断向量指向 OSCtxSw 直接调用 OSCtxSw
18
OS_ENTER_CRITICAL ( )
第三级
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
移植步骤之一
一,定义编译器相关的数据类型 typedef
typedef 单击此处编辑母版文本样式 typedef
– 第二级 二,定义允许和禁止中断宏 第三级
– 第四级 第五级 三,定义栈的增长方向
ARM软件开发系列培训及推广
COS-II的特点 可移植性 单击此处编辑母版文本样式 指的是用户可以在应用程序中通过语句#define 可裁剪 constants来定义所需的COS-II功能模块,以减少 – 第二级 占先式 – 第四级 多任务 中断管理 其它特点
第三级
不必要的存储器空间的开支. 属于完全占先式的实时内核,意味着COS-II总 是运行就绪条件下优先级最高的任务. 可以管理64个任务,支持56个用户任务.赋予每 个任务的优先级必须是不相同的,不支持时间片轮 转调度法. 绝大部分的COS-II的源代码是用移植性很强的 ANSI C写的.和微处理器硬件相关的那部分使用 汇编语言写,并且已经压到最低限度. 可在绝大多数8位,16位,32位,64位微处理器, 微控制器,数字信号处理器(DSP)上运行.
– 第四级 第五级 OSTaskSwHook(
第三级
)
OSTaskStatHook( ) OSTimeTickHook( )
外连函数 用来扩展COS-II功能, 必须声明,但并不一定 要包含任何代码.
21
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
单击此处编辑母版文本样式
– 第二级
ARM软件开发系列培训及推广
何时使用实时操作系统 完全取决于软件项目的复杂程度 单击此处编辑母版文本样式 并行的功能模块比较多
– 第二级 定时处理的功能比较多
第三级 程序的执行需要判断很多条件参数或资源 – 第四级
第五级
需要规划代码执行的优先顺序 要保证多个模块的执行时间
4
深圳市英蓓特信息技术有限公司
OSTickISR
定时中断函数; OSTickISR( )主要负责在进 入时保存处理器寄存器, 完成任务的切换,退出时 恢复寄存器并返回.
20
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
移植步骤之三 ---- OS_CPU_C.C
任务创建时调用本函数; OSTaskStkInit( ) OSTaskStkInit( ) 负责初 单击此处编辑母版文本样式 始化任务的堆栈结构; OSTaskCreateHook( ) – 第二级 OSTaskDelHook( )
7
深圳市英蓓特信息技术有限公司
ARM软件开发系列培训及推广
uCLinux操作系统
从linux移植而来,复杂但完全功能 完全免费使用,提供全部源代码 单击此处编辑母版文本样式
– 第二级
支持多种CPU 使用GNU工具链开发,提供通用的linux API
第三级
有完备的设备驱动程序和应用模块(可从linux中移植) – 第四级 第五级 使用直接物理内存访问方式 完整的TCP/IP协议栈 需要较多的系统资源,内核<512KB 无技术支持,但国内使用较多