嵌入式操作系统
嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系统的全部
软、硬件资源的分配、任务调度,控制、协调并发活动。
嵌入式实时系统自底向上包含三个部分
硬件环境
嵌入式实时操作系统 ——RTOS
嵌入式实时应用程序
嵌入式(实时)操作系统:用于嵌入式设备的操作系统,具有通用操作系统的基本特点,又具有系统实时性、硬件的相关依赖性、软件固态化以及应用的专用性等特点;
嵌入式(实时)操作系统的重要指标:实时性(中断响应时间、任务切换时间等)、尺寸(可裁剪性 )、可扩展性(内核、中间件)
1. C/OS——Micro Controller O S,微控制器操作系统
C/OS的性能特点(一)
公开源代码
可移植性(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) 。这种可剪裁性是靠条件编译实现的。
占先式(Preemptive)(内核)
多任务
C/OS-II 可以管理 64 个任务 (2.82 以上版支持 256 个任务 ) ,保留8个给系统。应用程序最多可以有 56 个任务。
可确定性
全部 C/OS-II 的函数调用与服务的执行时间具有可确定性。
任务栈
每个任务有自己单独的栈, C/OS-II 允许每个任务有不同的栈空间,以便压低应用程序对RAM 的需求。
系统服务
C/OS-II 提供很多系统服务,例如邮箱、消息队列、信号量、 块大小固定的内存的申请与释放、时间相关函数等。
中断管理
中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255 层。
稳定性与可靠性
µC/OS-II提供的系统服务
信号量
带互斥机制的信号量
减少优先级倒置的问题
事件标志
消息信箱
消息队列
内存管理
时钟管理
任务管理
μ C/OS-II 是一个实时操作系统内核,它只包括了任务调度、任务管理、时间管理、内存管理和任务间 的通信与同步等基本功能,而没有提供输入输出管理、文件管理、网络之类的额外服务。但是,由于 μC/OS-II 的可移植性和开源性,用户可以自己添加所需的各种服务。
特点
1. 公开源代码
2. 可移植性
3. 可固化
4. 可裁剪
5. 占先式
6. 多任务
7. 可确定性
8. 任务栈
9. 系统服务
10. 中断管理
11. 稳定性与可靠性
应用
1. 任务管理
2. 时间管理
3. 任务之间的通信与同步
4. 内存管理
5. 中断处理