文档介绍:嵌入式系统设计与实例开发
——ARM与C/OS-Ⅱ
第四讲实时操作系统C/OS-Ⅱ分析
北京航空航天大学
嵌入式机电控制研究室
魏洪兴
本节提要
1
3
2
5
4
6
C/OS-Ⅱ简介
C/OS-Ⅱ内核结构
C/OS-Ⅱ任务通信与同步
C/OS-Ⅱ任务管理
C/OS-Ⅱ时间管理
C/OS-Ⅱ移植
RTOS是32位的嵌入式CPU的软件基础
RTOS内核提供CPU的管理
硬件初时化,MMU,定时器,中断
RTOS 内核提供任务,内存管理
RTOS提供设备管理,文件和网络的支持
RTOS提供C/C++,JAVA,图形模块等编程接口
C/OS简介
1、C/OS——Micro Controller O S,微控制器操作系统
2、C/OS简介
美国人Jean Labrosse 1992年完成
应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等
1998年C/OS-II,目前的版本C/OS -II
2000年,得到美国航空管理局(FAA)的认证,可以用于飞行器中
网站()
公开源代码
可移植性(Portable)
绝大部分 C/OS-II的源码是用移植性很强的ANSI C写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得 C/OS-II便于移植到其他微处理器上。 C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。
可固化(ROMable)
C/OS-II是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化), C/OS-II可以嵌入到读者的产品中成为产品的一部分。
可裁剪(Scalable)
可以只使用 C/OS-II中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个 C/OS-II调用,而另一个产品则使用了几乎所有 C/OS-II的功能,这样可以减少产品中的 C/OS-II所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。
C/OS的性能特点(一)
占先式(Preemptive)
多任务
C/OS-II可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有56个任务
可确定性
全部 C/OS-II的函数调用与服务的执行时间具有可确定性。
任务栈
每个任务有自己单独的栈, C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。
系统服务
C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。
中断管理
中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。
稳定性与可靠性
C/OS的性能特点(二)
µC/OS-II图书
描述了µC/OS-II内部的工作原理
随书的CD中包含了源代码
工业界最清晰的源代码
除英文版外,有中文和韩文版
Chinese
Korean
English
ISBN 1-57820-103-9
美国CMP BOOK
ISBN 7-81077-290-2
北京航空航天大学出版社
ISBN 89-951540-5-5
µC/OS-II的各种商业应用
全世界有数百种产品在应用:
Avionics
Medical
Cell phones
Routers and switches
High-end audio equipment
Washing machines and dryers
UPS (Uninterruptible Power Supplies)
Industrial controllers
GPS Navigation Systems
Microwave Radios
Instrumentation
Point-of-sale terminals
更多
µC/OS-II提供的系统服务
信号量
带互斥机制的信号量
减少优先级倒置的问题
事件标志
消息信箱
消息队列
内存管理
时钟管理
任务管理
µC/GUI and µC/FS
µC/GUI
嵌入式的用户界面
用ANSI C书写
支持任何8, 16, 32-bits CPU
彩色,灰、度,等级或黑白显示
代码尺寸小
µC/FS
嵌入式的文件系统Written in ANSI C
用ANSI C书写
支持任何8, 16, 32-bits CPU
支持SMC, MMC, SD, CF, IDE, Flash, RAM其他介质