嵌入式实时操作系统1_第1页
嵌入式实时操作系统1_第2页
嵌入式实时操作系统1_第3页
嵌入式实时操作系统1_第4页
嵌入式实时操作系统1_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式实时操作系统嵌入式实时操作系统 嵌入式实时操作系统 Embedded Real time Operation System RTOS 1 嵌入式实时操作系统概念嵌入式实时操作系统概念 当外界事件或数据产生时 能够接受并以足够快的速度予以处理 其处理 的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应 并 控制所有实时任务协调一致运行的嵌入式操作系统 2 嵌入式实时操作系统特点嵌入式实时操作系统特点 1 多任务 2 有线程优先级 3 多种中断级别 3 嵌入式实时操作系统应用嵌入式实时操作系统应用 在工业控制 军事设备 航空航天等领域对系统的响应时间有苛刻的要 求 这就需要使用实时系统 采用嵌入式实时操作系统 简称 RTOS 能够支持多任务 使得程序开发更加 容易 便于维护 同时能够提高系统的稳定性和可靠性 4 实时操作系统的必要性 实时操作系统的必要性 首先 嵌入式实时操作系统提高了系统的可靠性 其次 提高了开发效率 缩短了开发周期 实时操作系统的优缺点 在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得 容易 不需要大的改动就可以增加新的功能 通过将应用程序分割成若干独立 的任务模块 使应用程序的设计过程大为简化 而且对实时性要求苛刻的事件 都得到了快速 可靠的处理 通过有效的系统服务 嵌入式实时操作系统使得 系统资源得到更好的利用 但是 使用嵌入式实时操作系统还需要额外的 ROM RAM 开销 2 5 的 CPU 额外负荷 以及内核的费用 5 实时系统与非实时系统的根本区别实时系统与非实时系统的根本区别 实时系统与非实时系统的根本区别在于 实时系统具有与外部环境及时 交互作用的能力 也就是说实时系统从外部获取信息以及系统得出结论要在很 短的限制时间内完成 它具有嵌入式软件共有的可裁剪 低资源占用 低功耗等特点 实时任务 之间可能还会有一些复杂的关联和同步关系 如执行顺序限制 共享资源的互 斥访问要求等 实时操作系统所遵循的最重要的设计原则是 采用各种算法和策略 始终 保证系统行为的可预测性 predictability 可预测性是指在系统运行的任何时刻 在任何情况下 实时操作系统的资源调配策略都能为争夺资源 包括 CPU 内存 网络带宽等 的多个实时任务合理地分配资源 使每个实时任务的实时性要求都 能得到满足 与通用操作系统不同 实时操作系统注重的不是系统的平均表现 而是要求每个实时任务在最坏情况下都要满足其实时性要求 也就是说 实时 操作系统注重的是个体表现 分时操作系统的基本设计原则是 尽量缩短系统的平均响应时间并提高系 统的吞吐率 在单位时间内为尽可能多的用户请求提供服务 由此可以看出 分时操作系统注重平均表现性能 不注重个体表现性能 6 uC OS II uC OS II 是一个简洁 易用的基于优先级的嵌入式抢占式多任务实时内核 uC OS II Micro Control Operation System Two 是一个可以基于 ROM 运行的 可裁减的 抢占式 实时多任务内核 具有高度可移植性 特别适合于微处理 器和控制器 是和很多商业操作系统性能相当的实时操作系统 RTOS uC OS II 最大程度上使用 ANSI C 语言进行开发 并且已经移植到近 40 多 种处理器体系上 涵盖了从 8 位到 64 位各种 CPU 包括 DSP 主要特点有公开源代码 代码结构清晰 明了 注释详尽 组织有条理 可移植性好 可裁剪 可固化 内核属于抢占式 最多可以管理 60 个任务 采用基于 ARM9 的 S3C2410 嵌入式微处理 可以使系统具备高性能的运算 能力的同时便于与各种外设连接扩展 简化了硬件设计 维持小型化的同时降 低了系统成本 uC OS II 作为一个源代码公开的操作系统 在具体应用中稳定 可靠 并且支持 uIPTCP IP 协议栈 ucGUI 等 可扩展性强 功能强大 本系 统采 ARM9 uC OS II 开发设计 具有精度高 运行稳定 实时性好 抗干扰能 力强 性价比高的特点 可以在各种工业场合中广泛应用 达到了设计的初衷 C OS II 作为一个嵌入式实时操作系统 自 1992 年以来 因其源代码的完全公 开和优越性能 已为众多的爱好者和开发人员所了解并得到了广泛应用 7 uC OS II 优缺点优缺点 具有执行效率高 占用空间小 实时性能优良和可扩展性强等特点 公开源代码 实时性强 uC OS II 主要用于小 CPU Vxworks 用于高性能 CPU 低端的 CPU 虽然 可以裁减使用 但已经没有意义了 就等于拿大炮打蚊子 1 在统计趋势上 uC OS 是否会越来越广泛 2 据说开发 uC OS 的公司 Micrium 是个小公司 该公司的商业模式是否能确 保其一直活下去并发展起来 3 在工业控制方面 uc OS 对比 vxworks 有什么优缺点 4 uc OS 是否有类似 linux 的开源社区 5 总体开发维护支持成本 uC 是否相对 Vxworks 有优势 6 uC 的 kernel 和其它功能模块 FS TCPIP 的集成 是否简单方便 对性能是 否有影响 7 driver 的获取是否容易 1 在小芯片使用 uC OS II 肯定是一个趋势 2 Micrium 是个小公司 肯定能够活下去 因为购买版权的公司会越来越多 关键是便宜 3 Vxworks 当然优势更多 请咨询原厂更准确 应用的领域更广泛 很多高 可信项目都使用了 但需要付更多银子 4 uC OS II 北航出版社有图书带光盘源代码 用于商业需要付费购买 5 差不多 其前提是全购买正版 当然 Vxworks 还是要强一些 而对于我们公 司来说差不多 6 简约不简洁 7 自己搞定 uC OS II 的源代码可以免费获得 只对商业应用收取少量许可证费 可以大大降低开发成本 同时 由 于源码公开 开发者遇到问题时可方便 的通过 工 n t e r n e t 进行交流 获得广泛的技术支持 但与商业实时操作系 统相比 在开发套件和技术支持方面还比较欠缺 软件包的功能还不是特别 强大 有些驱动程序需要用户自己编写 优先级设置优先级设置 嵌入式操作系统支持多任务 每个任务都具有优先级 任务越重要 赋予的 优先级应越高 多任务调度机制多任务调度机制 基于优先级抢占式调度 系统中每个任务都有一个优先级 内核总是将 CPU 分配给处于就绪态的优先级最高的任务运行 时间片轮转调度 让优先级相同的处于就绪状态的任务按时间片使用 CPU 以防止同优先级的某一任务长时间独占 CPU 在一般情况下 嵌入式实时操作系统采用基于优先级抢占式调度与时间片轮 转调度相结合的调度机制 时间的可确定性时间的可确定性 C OS II 内核是针对实时系统的要求设计实现的 只支持基于固定优先 级抢占式调度 调度方法简单 可以满足较高的实时性要求 任务及中断间的同步与通信机制任务及中断间的同步与通信机制 具有灵话的任务间同步与通信机制 都可以通过信号量 消息队列来实现 同步与通信 内存管理内存管理 C OS II 把连续的大块内存按分区来管理 每个分区中都包含整数个大小相 同的内存块 但不同分区之间内存的太小可以不同 用户动态分配内存时 只 须选择一个适当的分区 按块来分配内存 释放时将该块放回到以前所属的分 区 这样就消除了因多次动态分配和释放内存所引起的碎片问题 Clinux Clinux 的中断管理的中断管理 Clinux 操作系统将中断处理分为两部分 顶半处理和底半处理 在顶半处 理中 必须关中断运行 且仅进行必要的 非常少 速度快的处理 其他处理 交给底半处理 底半处理执行那些复杂 耗时的处理 而且接受中断 因为系 统中存在有许多中断的底半处理 所以会引起系统中断处理的延时 文件系统文件系统 C OS II 是面向中小型嵌入式系统的 即使包含全部功能 编译后内核 也不到 10 KB 所以系统本身并没有提供对文件系统的支持 但是 C OS II 具有良好的扩展性能 如果需要也可自行加入文件系统的内容 Clinux 继承了 Linux 完善的文件系统性能 它支持 ROMFS NFS ext2 MS DOS JFFS 等 文件系统 对硬件的支持对硬件的支持 C OS II 支持从 8 位到 32 位的 CPU 由于本身内核就很小 经过裁剪后 的代码最小可以分别为 2 KB 和 10 KB 所需的最小数据 RAM 空间分别为 4 KB 和 10 KB 总的来说系统对硬件的要求比较低 比较经济 系统移植系统移植 C OS II 的移植相对比较简单 只需要修改与处理器相关的代码就可以 了 结论结论 C OS II 是一个结构简单 功能完备和实时性很强的嵌入式操作系统内 核 适合于广大的嵌入式系统开发人员和爱好者入门学习 以及高校教学和科 研 C OSII 很适合开发那些对系统要求不是很苛刻 且 RAM 和 ROM 有限 的各种小型嵌入式系统设备 8 实时操作系统的相关概念实时操作系统的相关概念 1 基本概念 代码临界段 指处理时不可分割的代码 一旦这部分代码开始执行则不允 许中断打入 资源 任何为任务所占用的实体 共享资源 可以被一个以上任务使用的资源 任务 也称作一个线程 是一个简单的程序 每个任务被赋予一定的优先 级 有它自己的一套 CPU 寄存器和自己的栈空间 典型地 每个任务都是一个 无限的循环 每个任务都处在以下五个状态下 休眠态 就绪态 运行态 挂 起态 被中断态 任务切换 将正在运行任务的当前状态 CPU 寄存器中的全部内容 保存 在任务自己的栈区 然后把下一个将要运行的任务的当前状态从该任务的栈中 重新装入 CPU 的寄存器 并开始下一个任务的运行 内核 负责管理各个任务 为每个任务分配 CPU 时间 并负责任务之间通 讯 分为不可剥夺型内核于可剥夺型内核 调度 内核的主要职责之一 决定轮到哪个任务运行 一般基于优先级调 度法 2 关于优先级的问题 任务优先级 分为优先级不可改变的静态优先级和优先级可改变的动态优 先级 优先级反转 优先级反转问题是实时系统中出现最多的问题 共享资源的 分配可导致优先级低的任务先运行 优先级高的任务后运行 解决的办法是使 用 优先级继承 算法来临时改变任务优先级 以遏制优先级反转 3 互斥 虽然共享数据区简化了任务之间的信息交换 但是必须保证每个任务在处 理共享共享数据时的排他性 使之满足互斥条件的一般方法有 关中断 使用 测试并置位指令 TAS 禁止做任务切换 利用信号量 因为采用实时操作系统的意义就在于能够及时处理各种突发的事件 即处 理各种中断 因而衡量嵌入式实时操作系统的最主要 最具有代表性的性能指 标参数无疑应该是中断响应时间了 中断响应时间通常被定义为 中断响应时间 中断延迟时间 保存 CPU 状态的时间 该内核的 ISR 进入函 数的执行时间 中断延迟时间 MAX 关中断的最长时间 最长指令时间 开始执行 ISR 的第一条指令的时间 一 freeRTOS 比 uCOS II 优胜的地方 1 内核 ROM 和耗费 RAM 都比 uCOS 小 特别是 RAM 这在单片机里 面是稀缺资源 uCOS 至少要 5K 以上 而 freeOS 用 2 3K 也可以跑的很 好 2 freeRTOS 可以用协程 Co routine 减少 RAM 消耗 共用 STACK uCOS 只能用任务 TASK 每个任务有一个独立的 STACK 3 freeRTOS 可以有优先度一样的任务 这些任务是按时间片来轮流处理 uCOSII 每个任务都只有一个独一无二的优先级 因此 理论上讲 freeRTOS 可以管理超过 64 个任务 而 uCOS 只能管理 64 个 4 freeRTOS 是在商业上免费应用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论