
第五章嵌入式系统(课件).ppt
90页2018/9/10,1,五嵌入式操作系统 主要内容,5.1 引言 5.2 嵌入式操作系统 5.3 嵌入式操作系统的构成 5.4 实时操作系统 5.5 典型的嵌入式操作系统 5.6 嵌入式操作系统的选择 5.7 µC/OS-II操作系统 5.8 µClinux操作系统,2018/9/10,2,5.1 引言,以前——监控程序 普通监控程序 用户直接编写汇编/C程序 实时监控程序 系统的初始化管理 简单的实时时钟管理 有的实时监控程序也引入了任务调度及简单的任务间协调等功能,2018/9/10,3,5.1 引言(续),以前——以嵌入式处理器为核心 需求分析 看看用户需要解决哪些问题 选择处理器和相应的硬件 硬件的设计 原理图和PCB 软件的设计 处理器的初始化,中断,外设等等 系统调试、测试,2018/9/10,4,5.1 引言(续),KV8自动 保洁机器人 大小:9 x 32cm 功率:23W 价格:1000RMB,2018/9/10,5,5.1 引言(续),现在——基于嵌入式操作系统 嵌入式处理器性能提高,资源(内存、I/O接口)增多 任务要求复杂 实时、多任务、编程困难 实现条件 许多的任务需求是相同的,完全可以将一些相同的功能作为一个通用模块实现 操作系统 屏蔽了底层硬件的细节,方便用户 提供了标准的、可剪裁的系统服务软组件,2018/9/10,6,5.1 引言(续),现在——以嵌入式操作系统为核心 一个嵌入式系统 处理器和核心电路是固定的 操作系统及典型的外设驱动程序是固定的 嵌入式系统设计所需要做的工作 是不是要添加什么外设 写一些所添加的外设的驱动程序 编写应用程序——纯软件的工作 选择成熟的嵌入式操作系统 避免重复劳动,缩短开发周期,从而降低产品成本,2018/9/10,7,5.1 引言(续),提高了系统的可靠性 安全方面考虑,要求系统不能崩溃,要有自愈能力 在硬件设计方面提高系统的可靠性和抗干扰性 在软件设计方面提高系统的抗干扰性 前后台系统 在遇到强干扰时,应用程序容易产生异常、出错、跑飞,甚至死循环,造成系统崩溃 嵌入式操作系统管理的系统 在遇到强干扰时,可能引起若干进程中的一个被破坏,可以通过系统监控进程对其进行修复,2018/9/10,8,5.1 引言(续),发挥了32位CPU的多任务潜力 计算能力强,32位CPU比8、16位CPU快 32位CPU是为运行多用户、多任务操作系统而设计的,特别适于运行多任务实时系统 CPU采用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃 CPU运行状态分为系统态和用户态,将系统堆栈和用户堆栈分开,以及实时地给出CPU的运行状态 允许用户在系统设计中从硬件和软件两方面对实时内核的运行实施保护,2018/9/10,9,5.1 引言(续),提高了开发效率,缩短了开发周期 任务分解 每个任务模块的调试、修改几乎不影响其他模块 从某种意义上说,没有操作系统的计算机(裸机)是没有用的 在嵌入式应用中(复杂系统) ,只有把CPU和操作系统嵌入到系统中,才是真正的计算机嵌入式应用,2018/9/10,10,5.1 引言(续),2004年我国嵌入式软件市场销售额达到了224.1亿元,比2003年增长了19.1%,2018/9/10,11,5.2 嵌入式操作系统,1 什么是嵌入式操作系统 2 嵌入式操作系统的优缺点 3 嵌入式操作系统的分类 4 与桌面操作系统的比较,2018/9/10,12,1 什么是嵌入式操作系统,EOS(Embedded Operating System) 一种支持嵌入式系统应用的操作系统软件,是嵌入式系统极为重要的组成部分 通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面等 具有通用操作系统的基本特点 能够有效管理越来越复杂的系统资源 能够把硬件虚拟化,简化的驱动程序移植和维护 能够提供库函数、驱动程序、工具集以及应用程序,2018/9/10,13,2 嵌入式操作系统的优缺点,优点 程序的设计和扩展变得容易,移植性好 任务分析成模块,简化应用程序的设计 对实时性要求苛刻的事件得到了快速、可靠的处理 通过有效的系统服务,使得系统资源得到更好的利用 缺点 额外的存储开销 2~5%的CPU额外负荷 内核的费用,2018/9/10,14,3 嵌入式操作系统的分类,简单EOS 内核精简,功能简化 系统初始化、多任务管理、简单内存管理 µC/OS-II、FreeRTOS、Nucleus PLUS 内核只有几KB~十几KB~几十KB 复杂EOS 内核精简,功能完善 初始化、多任务、内存、IO管理、文件系统等 VxWorks、WinCE、µClinux、Embedded Linux 内核只有几百KB~几MB,2018/9/10,15,4 与桌面操作系统的比较,具有实时要求 桌面:通常不具有实时要求 模块化设计,短小精悍 桌面:体积庞大 具有低功耗要求 桌面:无低功耗要求 较强的鲁棒性 桌面:不是强烈要求,2018/9/10,16,5.3 嵌入式操作系统的构成,1 初始化工作 2 多任务管理 3 内存管理 4 I/O管理 5 文件系统 6 图形用户接口,2018/9/10,17,1 初始化工作(续),系统初始化:启动代码 CPU初始化 建立系统栈 内存初始化 中断初始化 定时器初始化 调用应用初始化 死循环,2018/9/10,18,1 初始化工作(续),应用初始化:初始化任务的运行环境 请求分配内存 创建任务 创建队列 创建管道 创建事件组 创建信号量 注册中断处理程序,2018/9/10,19,2 多任务管理,任务管理是嵌入式操作系统的核心 任务数据结构 TCB:任务控制块 EVB:事件控制块 任务控制核心例程 信息收集 初始化,2018/9/10,20,2 多任务管理(续),任务控制基本例程 任务创建 分配任务数据结构,加入任务队列 根据创建参数,确定是否立即运行 中止任务 挂起任务 恢复任务,2018/9/10,21,2 多任务管理(续),任务调度 调度时机 有任务挂起、终止时 中断(使得高优先级任务就绪) 时间片到达时(相同优先级) 通信缓冲区、存储空间等资源释放时 调度方法 任务控制权的移交 临界区保护,2018/9/10,22,2 多任务管理(续),任务调度策略 先进先出(FIFO)调度 周期循环调度 时间片轮转调度(Round Robin) 先进先出调度算法的改进 固定时间片、可变时间片 基于优先级、基于公平原则 优先级调度 固定优先级、动态优先级 可抢占(Preemption)调度,2018/9/10,23,2 多任务管理(续),任务间通信 队列:固定单元的变长消息 管道:FIFO的变长消息 邮箱:固定长度的消息 事件:一位 信号量:传统信号量 互斥量:管理临界资源,2018/9/10,24,2 多任务管理(续),任务状态 执行——Running 就绪——Ready 挂起——Waiting(Suspend) 终止——Sleeping 完成,2018/9/10,25,2 多任务管理(续),µC/OS-II 任务状态,2018/9/10,26,3 内存管理,基本操作 内存的划分、分配、释放等 低端的处理器通常不支持虚存的概念 没有MMU 使用静态存储器划分、静态地址访问 ARM7、Cortex-M3/R4等 高端的处理器支持虚存的概念 有MMU ARM9、Cortex-A8等,2018/9/10,27,4 I/O管理,基本操作 I/O接口电路的初始化、输入、输出等 典型接口电路 中断控制器、DMAC 定时器、UART、I2C、SPI、USB GPIO 数据传送方式 查询、中断、DMA 驱动程序、BSP/HAL,2018/9/10,28,5 文件系统,基本操作 文件的组织、创建、删除、维护等 嵌入式操作系统的文件系统 较为先进的嵌入式操作系统支持文件系统 通常基于非易失的半导体存储器存储介质 一些复杂的文件系统功能不支持 例如回滚、日志等不支持,2018/9/10,29,6 图形用户接口,提供比较简单的绘图功能 通常以API形式出现 组成 管理子系统 窗口管理系统 事件管理系统 图形子系统 提供图形绘制功能,实现窗口、控件等的绘制,2018/9/10,30,本讲小结,目的与要求 掌握嵌入式操作系统的定义、必要性 熟悉嵌入式操作系统的优缺点、构成等 了解嵌入式软件到嵌入式操作系统的发展历史 重点与难点 嵌入式操作系统的定义、必要性、优缺点、构成,2018/9/10,31,5.4 实时操作系统,1 实时操作系统概述 2 实时操作系统调度策略 3 非抢占式实时操作系统 4 抢占式实时操作系统 5 与嵌入式操作系统的关系,2018/9/10,32,1 实时操作系统概述,RTOS(Real Time Operating System) 指具有实时性、能支持实时系统工作的操作系统 首要任务是调度一切可利用的资源完成实时任务 其次才着眼于提高系统的使用效率 重要特点是要满足对时间的限制和要求,2018/9/10,33,1 实时操作系统概述(续),2018/9/10,34,1 实时操作系统概述(续),RTOS的功能 任务管理 多任务和基于优先级的任务调度 任务间同步和通信 信号量、互斥量、事件标志、邮箱和队列 存储器优化管理 含ROM的管理 实时时钟服务 中断管理服务,2018/9/10,35,1 实时操作系统概述(续),RTOS的特点 规模小 中断被屏蔽的时间很短 中断处理时间短 任务切换很快,2018/9/10,36,1 实时操作系统概述(续),RTOS的评价指标 任务调度算法 时间片轮转调度策略和优先级调度策略 优先级调度策略:抢占式、非抢占式 任务(上下文)切换时间 任务控制权转换的开销,保存当前状态、决定下一个任务、“恢复”下一个任务的环境 确定性:系统调用时间应当是可以预测的 最小内存开销:嵌入式系统的特性决定 最大中断禁止时间:应能及时响应外部中断请求,2018/9/10,37,2 实时操作系统调度策略,基于时间片轮转的任务调度策略 基本思想:硬件周期性中断当前正在运行的程序,进行调度(ISR),2018/9/10,38,2 实时操作系统调度策略(续),2018/9/10,39,2 实时操作系统调度策略(续),基于优先级的任务调度策略 根据基于优先级的任务调度策略,实时操作系统可分为两类: 非抢占式——不可剥夺、非抢先式 抢占式(preemption)——可剥夺、抢先式 大多数商用实时操作系统均采用基于优先级的抢占调度策略 为每个任务分配唯一的优先等级 保证在所有等待运行的任务中,真正运行的总是具有最高优先级的任务,2018/9/10,40,3 非抢占式实时操作系统,非抢占式实时操作系统 一个任务运行后,就把CPU控制权完全交给了该任务,直到它主动将CPU控制权还回来 优点:实时性比不使用实时操作系统的好,程序设计相对简单,可调用不可重入函数(任务间不嵌套) 缺点:如果最长任务的执行时间不能确定,系统的实时性(任务响应时间)就不能确定 实时性(最坏情况):取决于最长任务的执行时间 事件处理由中断服务子程序(ISR)来处理,可以激活一个挂起态的任务,使之进入就绪态,2018/9/10,41,非抢占式实时操作系统运行原理,2018/9/10,42,4 抢占式实时操作系统,抢占式实时操作系统 是指内核可以抢占正在运行任务的CPU使用权并将使用权交给进入就绪态的优先级更高的任务 优点:实时性好,优先级高的任务只要具备了运行的条件,就可以立即运行 缺点:如果任务之间抢占CPU控制权处理不好,会产生系统崩溃、死机等严重后果(优先级倒置);调用不可重入型函数时,要满足互斥条件 实时性(最坏情况):取决于任务切换时间 事件处理由中断服务子程序(ISR)来处理,可以激活一个挂起态的任务,使之进入就绪态,2018/9/10,43,抢占式实时操作系统运行原理,2018/9/10,44,4 抢占式实时操作系统(续),任务响应实时性比较 前后台系统 其它所有任务执行时间之和 可能不可预测 非抢占式实时操作系统 最长任务执行时间 可能不可预测 抢占式实时操作系统 任务切换时间 可预测,。
