嵌入式系统设计与开发.ppt
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.调度 调度是内核的主要职责之一,就是决定该轮到哪个任务运行, 多数实时内核是基于优先级调度法的。 5.可重入性 可重入性是指可重入型函数可以被一个以上的任务调用,而不 必担心数据被破坏。 6.任务优先级 每个任务都有其优先级,任务越重要,赋予的优先级应越高。
8.优先级继承 优先级继承可以用来解决优先级反转的问题。 9.互斥 互斥是用来控制多任务对共享数据进行访问的同步机制。 10.中断延迟 中断延迟是指从硬件中断发生的一条指令,到开始执行中断处 理程序的一条指令之间的这段时间。 11.时钟节拍 时钟节拍是特定的周期性中断,这个中断可以看作是系统心脏 的脉动。
English
ISBN 1-57820-103-9 美国CMP BOOK
Chinese
ISBN 7-81077-290-2 北京航空航天大学出版社
Korean
ISBN 89-951540-5-5
5.2 μC/OS-II的内核结构
μC/OS-II内核保护机制
在多任务与中断并存的实时操作系统中,为了保护核心 区代码, μC/OS-II的内核需要在存取代码核心区时禁 止中断,存取完成后再将中断重新打开,以免出现多个 任务或中断服务程序同时进入该代码区。中断禁止时间 是实时内核的一项最重要的指标,因为它影响着系统对 实时事件的响应能力。 μC/OS-II试图将这段中断禁止 时间减至最小。但是,这在很大程度上还取决于系统的 CPU结构,以及编译器生成的代码质量。 μC/OS-II定义了两个宏: OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来实 现对中断的允许和禁止,关中断和开中断是为了保护临 界段代码,这些代码与处理器有关,是需要移植的代 码。
7.可确定性 绝大多数μC/OS-II的函数调用和服务的执行时间具有确定性,也就是 说,用户总是能知道μC/OS-II的函数调用与服务执行了多长时间。
8.任务栈 μC/OS-II的每个任务都有自己单独的栈,使用μC/OS-II的占空间校验 函数,可确定每个任务到底需要多少栈空间。
9.系统服务 μC/OS-II提供很多系统服务,例如信号量、互斥信号量、时间标志、 消息邮箱、消息队列、块大小固定的内存的申请与释放及时间管理 函数等。
3.可固化性 只要具备合适的软硬件工具,就可以将μC/OS-II嵌入到产品中成为产 品用条件编译实现可剪裁,用户程序可以只编译自己需要的 (μC/OS-II的)功能,而不编译不要需要的功能,以减少μC/OS-II对 代码空间和数据空间的占用。
5.抢占性 μC/OS-II是抢占性的实时内核.这意味着μC/OS-II总是运行就绪条件下 优先级最高任务。 6.多任务 μC/OS-II可以管理64个任务,然而,μC/OS-II的作者建议用户保留8个 给μC/OS-II。这样,留给用户的应用程序最多可有56个任务。
嵌入式系统设计与开发
第5章 C/OS-Ⅱ实时操作系统
本章提要
5.1 C/OS-Ⅱ实时操作系统概述 5.2 C/OS-Ⅱ的内核结构 5.3 同步 5.4 C/OS-Ⅱ中的基本数据类型 5.5 C/OS-Ⅱ在ARM上的移植
5.1 C/OS-Ⅱ实时操作系统概述
❖ 概述
μC/OS-II读做“micro C O S 2”,意为“微控制器 操作系统版本2”。μC/OS-II是源码公开的著名实时内 核,可用于各类8位、16位和32位单片机或DSP。从 μC/OS算起,该内核已有10多年应用史,在诸多领域 得到广泛应用。
C/OS-Ⅱ的主要特点
1.源代码开放 购买作者撰写的《嵌入式实时操作系统μC/OS-II》一书即可获得 μC/OS-II V2.52版本的所有源代码,购买此书的其它版本可以获得相 应版本的全部源代码。
2.可移植性 μC/OS-II的源代码绝大部分是使用移植性很强的ANSI C写的,将与 微处理器硬件相关的汇编语言使用量压缩到最低的限度,以使 μC/OS-II便于移植到其它微处理器上。目前,μC/OS-II已经被移植到 多种不同架构的微处理器上。
μC/OS-II是一个完整的、可移植、可固化、可剪 裁的占先式实时多任务内核。μC/OS-II使用ANSI C语 言编写,包含一小部分汇编代码,使之可以供不同架 构的微处理器使用。至今,从8位到64位,μC/OS-II已 在超过40种不同架构的微处理器上运行。
实时系统概念
1.任务 任务是一个简单的程序,也称作一个线程,该程序可以认为 CPU完全属于该程序占用。 2.任务切换 多任务系统中,任务切换是指CPU的控制权由当前运行任务转 移到另外一个准备就绪任务时所发生的事件。 3.操作系统内核 多任务系统中,内核负责管理各个任务,或者说为每个任务分 配CPU时间,并且负责任务之间的通信,内核提供的基本服务 是任务切换。
OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()可以有3种不同的 实现方法: (1)方法1:#define OS_CRITICAL_METHOD 1 这是最简单的一种实现OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()的方法。如果用户在中断禁止的情况下调 用了一个μC/OS-II函数,而在从一个μC/OS-II函数返回时, 中断将被允许。但是,如果用户在调用μC/OS-II之前已禁止 了中断,而一般在调用返回以后仍要求禁止中断。
10.中断管理 中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被中 断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断
嵌套层数可达255层。
11.稳定性与可靠性 μC/OS-II是μC/OS的升级版,μC/OS自1992年以来已经有数百个商 业应用。μC/OS-II与μC/OS的内核是一样的,只是提供了更多的功 能。2000年7月,μC/OS-II在一个航空项目中得到了美国联邦航空 管理局对商用飞机的、符合RTCA DO – 178B标准的认证。这表明, 该操作系统的质量得到了认证,可以在任何应用中使用。