嵌入式系统软件嵌入式系统软件.pdf
《嵌入式系统软件嵌入式系统软件.pdf》由会员分享,可在线阅读,更多相关《嵌入式系统软件嵌入式系统软件.pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1嵌入式系统软件嵌入式系统软件杨剑锋杨剑锋1.1.嵌入式操作系统嵌入式操作系统?嵌入式操作系统是个集合嵌入式操作系统是个集合,而且是个无限而且是个无限集合集合 监控程序监控程序?常规操作系统常规操作系统(红外线红外线?紫外线紫外线)一维和多维一维和多维?嵌入式操作系统常常有实时要求嵌入式操作系统常常有实时要求 早期早期:嵌入式操作系统嵌入式操作系统=实时操作系统实时操作系统 近期近期:1)1)手持计算机和掌上计算机的出现手持计算机和掌上计算机的出现;2)2)CPUCPU速度的提高速度的提高;3)3)常规操作系统增加实时进程调度的支持常规操作系统增加实时进程调度的支持,如如POSIX.4POSI
2、X.4?嵌入式操作系统嵌入式操作系统 实时操作系统实时操作系统?许多嵌入式操作系统的内核是微内核结构许多嵌入式操作系统的内核是微内核结构?许多嵌入式操作系统都不带磁盘许多嵌入式操作系统都不带磁盘 根本不支持文件系统根本不支持文件系统 结构上为了设备驱动而支持文件系统,但不结构上为了设备驱动而支持文件系统,但不支持文件系统的文件存储功能支持文件系统的文件存储功能?许多嵌入式操作系统不采用存储管理技许多嵌入式操作系统不采用存储管理技术术,即不支持虚拟存储技术即不支持虚拟存储技术?许多嵌入式操作系统不划分许多嵌入式操作系统不划分“系统空间系统空间”和和“用户空间用户空间”操作系统的操作系统的“内核内
3、核”与外围应用程序之间不再与外围应用程序之间不再有物理的边界有物理的边界;系统中所谓系统中所谓“进程进程”实际上全都是内核线程实际上全都是内核线程 静态连接、系统调用、进程调度静态连接、系统调用、进程调度/切换切换 对任何一个应用程序做细微的修改,都得重对任何一个应用程序做细微的修改,都得重新生成整个系统,并且新生成整个系统,并且“下载下载”之;之;系统调用的界面太庞大;系统调用的界面太庞大;共享变量的访问,需要谨慎对待;共享变量的访问,需要谨慎对待;把通用操作系统上的应用移植过来需考虑把通用操作系统上的应用移植过来需考虑“可重入可重入”的问题;的问题;2?不分系统空间和用户空间不分系统空间和
4、用户空间 必须静态连接必须静态连接 如如DOSDOS、CP/MCP/M的的INT21INT21?不分系统空间和用户空间不分系统空间和用户空间 不能用页面映不能用页面映射技术射技术 但只用于不同进程之间,而非不同空间之间但只用于不同进程之间,而非不同空间之间?即使采用了存储管理,基本上都不采用页即使采用了存储管理,基本上都不采用页面交换技术面交换技术?重启动技术(重启动技术(watch dogwatch dog)2.2.RTOSRTOS?是否实时是否实时 一方面是多大程度上充分发挥硬件潜力,即一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题;综合速度快慢的问题;另一方面同时也是反映的速度
5、在多大的程度另一方面同时也是反映的速度在多大的程度上得到保证的问题上得到保证的问题?中断延迟(中断延迟(Interrupt LatencyInterrupt Latency)中断不可嵌套中断不可嵌套 LINUXLINUX的的Bottom HalfBottom Half 中断可嵌套:优先级中断中断可嵌套:优先级中断 大多微处理器不支持;大多微处理器不支持;LINUXLINUX不支持;不支持;UNIXUNIX支持支持 与指令集有关与指令集有关 DMADMA操作有关操作有关 保证系统调用的原子性有关保证系统调用的原子性有关?调度延迟(调度延迟(Scheduling LatencyScheduling
6、 Latency)中断处理程序中断处理程序进程处理进程处理 一般调度算法(一般调度算法(Round RobinRound Robin)不能及时选不能及时选中中 基于优先级调度算法,一般能及时选中基于优先级调度算法,一般能及时选中 如果目标进程优先级低呢?如果目标进程优先级低呢?可剥夺调度和不可剥夺调度可剥夺调度和不可剥夺调度 LINUXLINUX是属于什么调度?是属于什么调度?事件或软中断Linux既不是完全的可剥夺,也不是完全的不可剥夺?上下文切换延迟(上下文切换延迟(Context Switch LatencyContext Switch Latency)大小取决于大小取决于CPUCPU和
7、操作系统和操作系统 采用采用MMU MMU 不采用不采用MMUMMU?只要发生调度,就能选中目标进程吗?只要发生调度,就能选中目标进程吗?根据时间片的耗用调整优先级根据时间片的耗用调整优先级 拉开距离,分等级拉开距离,分等级?对实时进程而言,对实时进程而言,“应该没有问题应该没有问题”不够。不够。?是否可以不用中断、也不用调度,回到是否可以不用中断、也不用调度,回到最简单的最简单的“监控程序监控程序”?3实时性实时性实时性实时性简介简介?对于什么是实时系统,对于什么是实时系统,POSIX 1003.bPOSIX 1003.b作了这作了这样的定义:指系统能够在限定的响应时间样的定义:指系统能够在
8、限定的响应时间内提供所需水平的服务内提供所需水平的服务?实时系统根据其对于实时性要求的不同,实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型可以分为软实时和硬实时两种类型?一个计算机系统为了提供对于实时性的支一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于持,它的操作系统必须对于CPUCPU和其他资源和其他资源进行有效的调度和管理,即实时调度进行有效的调度和管理,即实时调度实时调度分类实时调度分类?各种实时操作系统的实时调度算法从调度策略各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别:基于优先级的调度上可以分为如下三种类别:基于优先级的调度算法(算
9、法(PriorityPriority-driven schedulingdriven scheduling-PDPD)、)、基于基于CPUCPU使用比例的共享式的调度算法(使用比例的共享式的调度算法(ShareShare-driven schedulingdriven scheduling-SDSD)、)、以及基于时间的进程以及基于时间的进程调度算法(调度算法(TimeTime-driven schedulingdriven scheduling-TDTD)?从调度方式上来讲可以分为:可抢占、不可抢从调度方式上来讲可以分为:可抢占、不可抢占;从时间片来分:固定时间片、可变时间片占;从时间片来分
10、:固定时间片、可变时间片实时性改造实时性改造实时性改造实时性改造?对操作系统实时性的扩展可以从两方面对操作系统实时性的扩展可以从两方面进行进行:向外扩展和向上扩展向外扩展和向上扩展?向外扩展是从范围上扩展,让实时系统向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多支持的范围更广,支持的设备更多?向上扩展是扩充操作系统内核,从功能向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理上扩充系统的实时处理实时多任务实时多任务OSOSRTOSRTOS?单片机单片机 无无osos 主程序主程序?RTOSRTOS 资源包装资源包装 APIAPI 可移植(只要可移植(只要1 14%)4%)
11、实时系统实时系统?在实时计算中,系统的正确性不仅仅依在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产赖于计算的逻辑结果而且依赖于结果产生的时间生的时间?响应时间限定响应时间限定?可预知可预知实时操作系统与实时操作系统与I/OI/O?实时操作系统还需要有效的中断处理能实时操作系统还需要有效的中断处理能力来处理异步事件和高效的力来处理异步事件和高效的I/OI/O能力来处能力来处理有严格时间限制的数据收发应用。就理有严格时间限制的数据收发应用。就是是:?系统应该有在事先定义的时间范围内系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。识别和处理离散的事件的能力。?系统能
12、够处理和存储控制系统所需要系统能够处理和存储控制系统所需要的大量的数据。的大量的数据。4?周期性的系统周期性的系统?非周期性系统非周期性系统?硬实时系统硬实时系统 灾难后果灾难后果?软实时系统软实时系统 性能下降性能下降RTOSRTOS与分时系统与分时系统?事件响应时间限定事件响应时间限定?事件随机到达事件随机到达?系统可确定性系统可确定性RtosRtos的历史的历史?1 1)早早期的监控系统)早早期的监控系统 系统系统initinit 时钟时钟 简单的任务调度简单的任务调度?2 2)专用实时)专用实时OSOS 依赖于特定硬件依赖于特定硬件 移植性不好移植性不好?3 3)通用)通用RTOSRT
13、OS嵌入式软件开发平台嵌入式软件开发平台?RTOSRTOS?标准化标准化?可移植可移植?设备独立设备独立RTOSRTOS基本基本structstruct?实时多任务实时多任务corecore 任务管理任务管理:多任务和基于优先级的任务调度多任务和基于优先级的任务调度 定时器定时器:系统的实时时钟服务,以及各个定时任务的系统的实时时钟服务,以及各个定时任务的调入等调入等 MemMem:管理系统的内存资源,如管理系统的内存资源,如DRAM,ROM,FLASHRAMDRAM,ROM,FLASHRAM等等 资源管理资源管理:管理系统的各种资源如系统的各种设备,管理系统的各种资源如系统的各种设备,端口,
14、中断等;端口,中断等;事件和消息管理:管理各种系统级的事件,如实时事件和消息管理:管理各种系统级的事件,如实时中断响应,各种异常等;任务间同步和通信(信号中断响应,各种异常等;任务间同步和通信(信号量和邮箱等)以及各种系统消息和应用程序之间的量和邮箱等)以及各种系统消息和应用程序之间的通讯通讯?RTOSRTOS的系统调用的系统调用?90%90%以上的设备独立以上的设备独立?RTOSRTOS的任务分时系统的任务分时系统ProcessProcess5实时带来的问题实时带来的问题1 1-时间时间?在实时系统中最基本的是系统应该能够在实时系统中最基本的是系统应该能够提供对时间正确性进行指定的方法提供对
15、时间正确性进行指定的方法?系统提供一种指定时间尺度的方法系统提供一种指定时间尺度的方法?通用系统的延时不能满足通用系统的延时不能满足问题问题2 2实时系统的结构实时系统的结构?实时系统的体系结构必须满足:实时系统的体系结构必须满足:?高运算速度高运算速度?高速的中断处理高速的中断处理?高的高的I/OI/O吞吐率吞吐率?合理的处理器和合理的处理器和I/OI/O设备的拓扑连接设备的拓扑连接?高速可靠的和有时间约束的通信高速可靠的和有时间约束的通信?体系结构支持的出错处理,体系结构支持的出错处理,?体系结构支持的调度体系结构支持的调度?体系结构支持的操作系统,体系结构支持的操作系统,?体系结构支持的
16、实时语言特性。体系结构支持的实时语言特性。问题问题3 3容错与分布容错与分布?稳定性稳定性?容错容错?分布式应用分布式应用问题问题4 4实时通讯实时通讯?逻辑正确逻辑正确?要有确定的延迟时间要有确定的延迟时间问题问题5 5其他问题其他问题?时间特性的指定和确正,这点与实际系统设时间特性的指定和确正,这点与实际系统设计相同。计相同。?实时的调度理论。由于实时系统应用的特殊实时的调度理论。由于实时系统应用的特殊性以往通用系统中以大吞吐量为目标的调度算性以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。主要要求法必须改进以适应实时应用的需要。主要要求是满足时间的正确性,然后提供高
17、度动态的,是满足时间的正确性,然后提供高度动态的,满足在线需求的,适应性的实时调度。满足在线需求的,适应性的实时调度。?实时操作系统的设计和实现。在设计上首要实时操作系统的设计和实现。在设计上首要目标是提供保证实时性的方法,包括一系列的目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。实现上经典问题的针对实时系统的解决方案。实现上要求操作系统的低开销,而且必须保证内核以要求操作系统的低开销,而且必须保证内核以及其他关键的可重入性。及其他关键的可重入性。?实时的编程语言和设计方法。在编程实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方语言级完成或提供实时
18、应用所需要的方法。法。?比如象比如象AdaAda语言,语言,FORTHFORTH语言。语言。?分布式的实时数据库。分布式的实时数据库。?系统的容错。系统的容错。?实时时钟的同步。实时时钟的同步。?实时系统中的人工智能实时系统中的人工智能6与与通用计算机区别通用计算机区别?通用:通用:方便用户管理计算机资源方便用户管理计算机资源 追求系统资源最大利用率追求系统资源最大利用率?RTOSRTOS 调度的实时性调度的实时性 响应时间可确定性响应时间可确定性 高可靠性高可靠性性能衡量标准性能衡量标准?对传统的通用系统对传统的通用系统:大的系统吞吐量大的系统吞吐量 合理的响应速度合理的响应速度 对每个系统
19、用户相对公平的进行计算资源的分配对每个系统用户相对公平的进行计算资源的分配?实时系统实时系统 实时的数据吞吐取代了以吞吐量为目标的标准。实时的数据吞吐取代了以吞吐量为目标的标准。对硬实时应用的优先响应取代了对每个用户的恰当对硬实时应用的优先响应取代了对每个用户的恰当的反应速度。的反应速度。系统的计算资源和其他外设资源必须优先满足实时系统的计算资源和其他外设资源必须优先满足实时应用的要求应用的要求RTOSRTOS的衡量指标的衡量指标?系统响应时间系统响应时间(System response time)System response time):系统系统发出处理要求到系统给出应答信号的时间发出处理
20、要求到系统给出应答信号的时间;?任务切换时间任务切换时间(ContextContext-switching time):switching time):任务之任务之间切换而使用的时间间切换而使用的时间;?中断延迟中断延迟(Interrupt latency time):Interrupt latency time):是计算机是计算机接收到中断信号到操作系统作出响应,并完成接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间换道转入中断服务程序的时间;RTOSRTOS的任务调度机制的任务调度机制?决定了多任务能力与实时性决定了多任务能力与实时性?通用模式:通用模式:调度策略:优先级
21、调度、时间片轮转调度调度策略:优先级调度、时间片轮转调度 调度方式:抢占式、不可抢占式、选择可抢调度方式:抢占式、不可抢占式、选择可抢占式占式 时间片:定长时间片与变长时间片时间片:定长时间片与变长时间片?RTOSRTOS一般使用抢占式任务调度一般使用抢占式任务调度时间限定的任务调度算法时间限定的任务调度算法?速度单调算法速度单调算法 工作由定期任务组织工作由定期任务组织 任务时间定长度任务时间定长度 使用频率高的优先级高使用频率高的优先级高?时限驱动算法时限驱动算法 工作定期与不定期工作定期与不定期 执行时长随着时间变化执行时长随着时间变化 下一个要安排执行的任务是时限最早的任务下一个要安排
22、执行的任务是时限最早的任务?MMUMMU?实模式实模式?保护模式保护模式MemMem管理管理7最小最小memmem开销开销?PricePrice?256K RAM256K RAM?4M4M?32M RAM32M RAM中断禁止时间中断禁止时间?用户态用户态 中断态中断态中断延时时间中断延时时间?确认中断确认中断-?中断服务第一语句执行中断服务第一语句执行?三部分三部分?Microprocessor Microprocessor 的硬件延时的硬件延时?RTOSRTOS由中断将权利交给相关代码的时间由中断将权利交给相关代码的时间?中断禁止时间中断禁止时间可中断式内核可中断式内核?中断发生时;即使运
23、行核心服务也保证中断发生时;即使运行核心服务也保证一定时间内响应一定时间内响应?缩短中断延时时间缩短中断延时时间任务切换时间任务切换时间?控制权取回控制权取回?交给另外一任务交给另外一任务两个主要评价实时性的指标:两个主要评价实时性的指标:?最大中断禁止时间最大中断禁止时间任务切换时间任务切换时间8任务任务?分时系统以进程(线程)为基本单位分时系统以进程(线程)为基本单位?RTOSRTOS以任务为基本单位以任务为基本单位?组成:组成:任务控制块任务控制块 程序区程序区 数据区数据区 堆栈区堆栈区 系统堆栈系统堆栈 用户堆栈用户堆栈任务的状态任务的状态?运行运行?就绪就绪?挂起挂起?休眠休眠任务
24、的同步与通讯任务的同步与通讯?消息消息?事件事件?信号量信号量?信箱信箱?共享内存共享内存消息消息?系统公用数据交换区系统公用数据交换区 私有消息缓冲区私有消息缓冲区 公用消息缓冲池公用消息缓冲池?消息机制消息机制 创建创建 删除删除 接受消息接受消息 发送消息发送消息 广播消息广播消息 紧急消息紧急消息?消息可以是定长与不定长消息可以是定长与不定长事件事件?应用于同步,通讯数据量不大应用于同步,通讯数据量不大?接受事件接受事件?发送事件发送事件?RTOSRTOS一般有一般有15153232个事件个事件信号量信号量?创建创建?删除删除?P P操作操作?V V操作操作?RTOSRTOS需要解决优
25、先级倒置问题需要解决优先级倒置问题9优先级倒置问题优先级倒置问题?条件条件 高优先级任务高优先级任务H H 低优先级任务低优先级任务L L 中优先级任务中优先级任务MM 共享内存共享内存Y Y,写操作写操作 信号量信号量S S,互斥互斥?步骤步骤?1 1)L L取得取得S S(P P操作),但是未做操作),但是未做V V操作操作?2 2)H H中断,中断,H H运行态运行态?3 3)H H写写Y Y,但是但是Y Y的的S S被占用被占用?4 4)L L重新取得控制权重新取得控制权?5 5)MM出现,取得控制权出现,取得控制权?结果:结果:?MM比比H H优先优先如果不断的如果不断的MM出现,出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统软件
限制150内