嵌入式操作系统
目录
嵌入式操作系统
教材:嵌入式系统及应用,罗蕾、李允、陈丽蓉等,电子工业出版社
嵌入式软件系统
嵌入式操作系统
嵌入式操作系统可以统称为应用在嵌入式系统的操作系统,它具有一般操作系统的功能,同时具有嵌入式软件的特点,主要有
- 可固化
- 可配置、可剪裁
- 独立的板级支持包,可修改
- 不同的CPU有不同的版本
- 应用的开发需要有集成的交叉开发工具
目前嵌入式操作系统的市场在不断细分,出现了针对不同领域的产品,这些产品按领域的要求和标准提供特定的功能
嵌入式操作系统的演变
- 无操作系统阶段
- 简单操作系统阶段
- 实时操作系统阶段
- 面向Internet的阶段
嵌入式操作系统分类
从应用领域来分
从实时性的角度来分
从嵌入式系统的商业模式来分类
- 商用型:功能稳定、可靠,有完善的技术支持和售后服务,开发费用+版税
- 开源型:开放源码,只收服务费,没有版税。 如Embedded linux,RTEMS,eCOS
嵌入式操作系统体系结构
体系结构是操作系统的基础,它定义了硬件与软件的界限、内核与操作系统其它组件(文件、网络、GUI等)的组织关系、系统与应用的接口
体系结构是确保系统的性能、可靠性、灵活性、可移植性、可扩展性的关键
目前操作系统的体系结构可分为: 单块结构、层次结构和客户/服务器(微内核)结构
目前嵌入式操作系统主要采用分层和模块化相结合的结构或微内核结构
DeltaCORE的体系结构:层次+模块结构
嵌入式操作系统的组成
嵌入式内核
内核是嵌入式操作系统的基础,也是必备的部分;内核还提供特定的应用编程接口,但目前没有统一的标准。
任务管理
- 内核的核心部分,具有任务调度、创建任务、删除任务、挂起任务、解挂任务、设置任务优先级等功能
- 通用计算机的操作系统追求的是最大的吞吐率,为了达到最佳整体性能,其调度原则是公平,采用Round-Robin或可变优先级调度算法,调度时机主要以时间片为主驱动
- 嵌入式操作系统多采用基于静态优先级的可抢占的调度,任务优先级是在运行前通过某种策略静态分配好的,一旦有优先级更高的任务就绪就马上进行调度
内存管理
- 嵌入式操作系统的内存管理比较简单
- 通常不采用虚拟存储管理,而采用静态内存分配和动态内存分配(固定大小内存分配和可变大小内存分配)相结合的管理方式
- 有些内核利用MMU机制提供内存保护功能
通信、同步和互斥机制
- 这些机制提供任务间、任务与中断处理程序间的通信、同步和互斥功能
- 一般包括信号量、消息、事件、管道、异步信号和共享内存等功能
- 嵌入式操作系统需要解决在这些机制的使用中出现的 优先级反转 问题
中断管理
- 安装中断服务程序
- 中断发生时,对中断现场进行保存,并且转到相应的服务程序上执行
- 中断退出前,对中断现场进行恢复
- 中断栈切换
- 中断退出时的任务调度
时间管理
- 提供高精度、应用可设置的系统时钟,该时钟是嵌入式系统的时基,可设置为十毫秒以下
- 提供日历时间,负责与时间相关的任务管理工作如任务对资源有限等待的计时、时间片轮转调度等,提供软定时器的管理功能等
- 通用操作系统的 系统时钟的精度由操作系统确定 ,应用不可调,且一般是几十个毫秒
任务扩展功能
- 在内核中设置一些Hook的调用点
- Hook调用点有任务创建、任务切换、任务删除、出错处理等
嵌入式TCP/IP
嵌入式TCP/IP网络系统提供符合TCP/IP协议标准的协议栈,提供Socket编程接口
TC/PIP协议
嵌入式TCP/IP网络系统具有以下的特点
- 可剪裁
- 采用“零拷贝”(Zero Copy)技术,提高实时性
- 采用静态分配技术
嵌入式文件系统
嵌入式文件系统较为简单,主要具有文件的存储、检索、更新等功能,一般不提供保护和加密等安全机制
它以系统调用和命令方式提供对文件的各种操作,主要有
- 设置和修改对文件和目录的存取权限
- 提供建立、修改、改变、删除目录等服务
- 提供创建、打开、读、写、关闭、撤消文件等服务
嵌入式实时操作系统µC/OS-II
- µC/OS-II是一个抢占式实时多任务内核。它是用ANSI的C语言编写的,包含一小部分汇编语言代码,使之可以提供给不同架构的微处理器使用
- 至今,从8位到64位,µC/OS-II已经在40多种不同架构的微处理器上使用
- µC/OS-II全部以源代码的方式提供,大约有5500行
- CPU相关的部分使用的是针对Intel80x86微处理器的代码
- µC/OS-II可以很容易地移植到不同架构的嵌入式微处理器上
- µC/OS-II 不是自由软件,用于商业目的时须取得许可证