版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第五章第五章中间件:嵌入式操作系统和中间件:嵌入式操作系统和用户接口用户接口2教材内容5.1 嵌入式操作系统 5.1.1 操作系统体系结构 5.1.2 实时特性 5.1.3 操作系统裁剪 5.1.4 嵌入式操作系统评测 5.2 用户接口(UI) 5.2.1 UI的定义 5.2.2 UI的发展历程 5.2.3 嵌入式UI的结构特点 5.2.4 嵌入式UI设计原则 中间件指中间件指5层模型中的第三、四层,通常由两部分软件程序构成。对于层模型中的第三、四层,通常由两部分软件程序构成。对于低级的专用智能设备,如工业仪表,通常不需要专门的操作系统的支持,低级的专用智能设备,如工业仪表,通常不需要专门的
2、操作系统的支持,为了提高系统的灵活性、可复用性,缩短研发周期,高端嵌入式系统借鉴为了提高系统的灵活性、可复用性,缩短研发周期,高端嵌入式系统借鉴了通用计算机的一些概念和方法,建立了嵌入式操作系统等支持软件。中了通用计算机的一些概念和方法,建立了嵌入式操作系统等支持软件。中间件可使用户应用程序与底层的接口具有更好的一致性,降低对硬件和基间件可使用户应用程序与底层的接口具有更好的一致性,降低对硬件和基础数据操作的依赖。中间件功能越强大,则对上层的平整度越好,但存储础数据操作的依赖。中间件功能越强大,则对上层的平整度越好,但存储量和执行速度都会付出代价。量和执行速度都会付出代价。35.1 嵌入式操作
3、系统嵌入式操作系统 嵌入式操作系统是在专用智能设备的硬件基础上,借鉴了嵌入式操作系统是在专用智能设备的硬件基础上,借鉴了通用计算机操作系统的一些概念、结构等建立的具有嵌入通用计算机操作系统的一些概念、结构等建立的具有嵌入式特点的操作系统。式特点的操作系统。 显然,它的根本仍是通用操作系统的骨架,但具体的功能、显然,它的根本仍是通用操作系统的骨架,但具体的功能、实现方法等都须根据嵌入式系统硬件的具体情况进行修改。实现方法等都须根据嵌入式系统硬件的具体情况进行修改。 因此常见的很多嵌入式操作系统都脱胎于通用操作系统,因此常见的很多嵌入式操作系统都脱胎于通用操作系统,典型的就是典型的就是WinCE、
4、Embedded Linux。 研究嵌入式操作系统的目的:研究嵌入式操作系统的目的:1.设计专用的嵌入式操作系设计专用的嵌入式操作系统;统;2.更好的对标准嵌入式操作进行裁剪、配置。更好的对标准嵌入式操作进行裁剪、配置。 嵌入式操作系统的基本要求包括嵌入式操作系统的基本要求包括 结构方面:软件规模适当、执行速度快、可根据需要进行裁剪等;结构方面:软件规模适当、执行速度快、可根据需要进行裁剪等; 性能指标方面:实时性、能耗控制、可靠性等;性能指标方面:实时性、能耗控制、可靠性等; 为了适应要求,嵌入式操作系统的编程设计尽可能的简洁,为了适应要求,嵌入式操作系统的编程设计尽可能的简洁,因此其结构相
5、对紧凑,很难象通用操作系统那样具有清晰因此其结构相对紧凑,很难象通用操作系统那样具有清晰的结构和层次。的结构和层次。45.1.1 操作系统体系结构操作系统体系结构三组概念三组概念 操作系统和内核操作系统和内核内核是操作系统的核心部分,而非全部,它向外提供了计算机内核是操作系统的核心部分,而非全部,它向外提供了计算机设备的核心管理调用,除内核外,操作系统还包括其它系统程序。设备的核心管理调用,除内核外,操作系统还包括其它系统程序。 开发态和运行态开发态和运行态开发态指操作系统在开发阶段,内核和其它程序尚未编译为可开发态指操作系统在开发阶段,内核和其它程序尚未编译为可运行机器代码时的状态。程序以源
6、码形式(数据)存在与非挥发性运行机器代码时的状态。程序以源码形式(数据)存在与非挥发性存储器(宿主机)内。存储器(宿主机)内。运行态指操作系统已完成编译、连接,并下载到硬件系统上,运行态指操作系统已完成编译、连接,并下载到硬件系统上,程序以机器码形式(程序)存在于内存中,内核只有一个副本。程序以机器码形式(程序)存在于内存中,内核只有一个副本。 用户空间(用户态)和内核空间(内核态)用户空间(用户态)和内核空间(内核态)操作系统运行态时总的地址空间分为用户空间和内核空间。运操作系统运行态时总的地址空间分为用户空间和内核空间。运行中的操作系统中内核所在的地址空间即为内核空间,除此之外的行中的操作
7、系统中内核所在的地址空间即为内核空间,除此之外的外部管理程序、用户进程占据用户空间。一个完整的嵌入式系统软外部管理程序、用户进程占据用户空间。一个完整的嵌入式系统软件同时包含这两部分,当运行内核代码时处于内核空间,即称件同时包含这两部分,当运行内核代码时处于内核空间,即称CPU处于内核态,否则为用户态。处于内核态,否则为用户态。5 划分内核空间与用户空间是为了充分保证内核代码和数据的安全性安全性,早期通用操作系统和低级的嵌入式操作系统并不严格区分这两个空间和CPU状态,这种系统可能由于用户程序的错误造成内核崩溃用户程序的错误造成内核崩溃。操作系统的基本功能:进进程调度程调度、进程间通信进程间通
8、信、内内存管理存管理、设备管理设备管理、文件文件系统系统、网络系统网络系统等。操作系统与内核之间存在差别,这在嵌入式系统中非常重要。内核可能具备了操作系统的所有功能,也可能只具备一部分,这种差别决定了嵌入式操作系统的三种基本体系结构。61.整体内核结构整体内核结构 也称单内核结构、大内核结构,几乎涵盖了所有操作系统也称单内核结构、大内核结构,几乎涵盖了所有操作系统功能的内核结构。内核由多个模块构成,遵循特定的接口功能的内核结构。内核由多个模块构成,遵循特定的接口规范相互调用。所有模块编译连接为一个可执行文件规范相互调用。所有模块编译连接为一个可执行文件。 内核所有模块统一封装,内核所有模块统一
9、封装,对外接口也统一设计;对外接口也统一设计; 各模块之间相互调用,依各模块之间相互调用,依赖程度高,系统内部结构赖程度高,系统内部结构模糊;模糊; 模块间调用直接、简洁,模块间调用直接、简洁,整个系统执行效率高。整个系统执行效率高。7 整体内核与硬件、用户空间程序的关系整体内核与硬件、用户空间程序的关系 8 整体内核的缺点:整体内核的缺点:内核结构模糊,难于裁剪;内核结构模糊,难于裁剪;内核代码各模块调试困难;内核代码各模块调试困难;内核调试困难;内核调试困难;内核稳定性较差;内核稳定性较差;内核规模可能很大;内核规模可能很大;92.微内核结构微内核结构 也称插件式结构,类似客户也称插件式结
10、构,类似客户端端/服务器模式。服务器模式。 操作系统分为两个部分:系操作系统分为两个部分:系统必不可少的功能集合,操统必不可少的功能集合,操作系统扩展的功能。前者构作系统扩展的功能。前者构成微内核,运行于内核空间,成微内核,运行于内核空间,后者则运行于用户空间。后者则运行于用户空间。 QNX10 微内核应包含的功能:微内核应包含的功能: 基本进程调度管理基本进程调度管理 基本进程通信管理基本进程通信管理 基本设备管理基本设备管理 基本内存管理基本内存管理 中断管理中断管理其它(设备驱动程序、文件系统、网络系统、高级内存管理、高级进其它(设备驱动程序、文件系统、网络系统、高级内存管理、高级进程管
11、理等)作为外围模块,分别建立相应的进程,称为服务进程,与程管理等)作为外围模块,分别建立相应的进程,称为服务进程,与应用程序以客户端应用程序以客户端/服务器方式运行在同一层。服务器方式运行在同一层。11 最简单的微内核主要功能就是消息交换:确认消息、在组件间传送消息、准许对硬件操作消息。 根据这样的思路,微内核系统支持多个进程同时存活,这些进程分别完成一部分功能,组合在一起实现系统完整的功能。系统工作的基本过程就是进程间服务的相互调用,由于所有进程都处于虚拟空间中,相互之间无法实现通信,信息的交换必须通过内核,如图。 这样的机制增加了信息交换的开销增加了信息交换的开销。 微内核的功能调用可一次
12、完成,因此具有最高的效率,因此微内核中集成哪些功能需要根据实际要求进行设计。保证要求高的某些任务具有足够高的效率。12 微内核的优点:微内核的优点: 结构规范,易于裁剪;结构规范,易于裁剪; 易于编程设计;易于编程设计; 调试简单;调试简单; 鲁棒性好;鲁棒性好; 扩展性好;扩展性好; 移植性好;移植性好; 降低内存的固定使用量;降低内存的固定使用量; 内核规模越小,实时性能越好(中断响应速度快);内核规模越小,实时性能越好(中断响应速度快);微内核的缺点:微内核的缺点: 整体效率低;整体效率低; 资源管理复杂;资源管理复杂;133.层次内核结构层次内核结构 一种基于分层思想的内核结构。一种基
13、于分层思想的内核结构。 操作系统被分为若干模块,按功能流程的次序排列称若操作系统被分为若干模块,按功能流程的次序排列称若干层,下层模块封装内部细节并向上提供统一的抽象和干层,下层模块封装内部细节并向上提供统一的抽象和接口,上层模块调用下层模块提供的接口,各层次间的接口,上层模块调用下层模块提供的接口,各层次间的实现比较独立。实现比较独立。层次结构的主要贡献在于理论,层次结构的主要贡献在于理论,它给出了构建操作系统的一个它给出了构建操作系统的一个基本思路,实际工程中则并非基本思路,实际工程中则并非必须严格采用这样的结构,它必须严格采用这样的结构,它通常融合在其它结构的系统中。通常融合在其它结构的
14、系统中。14 层次结构内部的调用关系 系统调用只能是调用与其相邻的下层。 同层模块间不允许相互调用的称为全序结构全序结构关系,全序结构不存在循环调用。 同层模块间允许相互调用,可以有循环调用的结构曾为半半序结构序结构关系。15 层次内核的特点:层次内核的特点: 把一个复杂的系统分解有许多功能单一的模块,各模块间把一个复杂的系统分解有许多功能单一的模块,各模块间组织结构和依赖关系清晰明确,适合进行系统功能划分。组织结构和依赖关系清晰明确,适合进行系统功能划分。 分层思想有利于组织操作系统的开发,易于测试和诊断,分层思想有利于组织操作系统的开发,易于测试和诊断,也使得系统的修改和扩展相对容易。也使
15、得系统的修改和扩展相对容易。 各层次模块间存在依赖关系,任何一层的裁剪修改都影响各层次模块间存在依赖关系,任何一层的裁剪修改都影响其上层模块,因此裁剪较微内核系统困难。其上层模块,因此裁剪较微内核系统困难。 层次内核的规模会随着功能的增强而变大。层次内核的规模会随着功能的增强而变大。164.其它结构其它结构(1)外内核)外内核 一种纵向的操作系统内核结构,设计理念是由用户程序设一种纵向的操作系统内核结构,设计理念是由用户程序设计者来决定硬件接口的设计。计者来决定硬件接口的设计。 外内核本身非常小,只负责系统保护和系统资源复用相关外内核本身非常小,只负责系统保护和系统资源复用相关的服务。的服务。
16、 外内核不对硬件及其驱动进行抽象封装,而直接让应用程外内核不对硬件及其驱动进行抽象封装,而直接让应用程序请求一块特定的物理空间、磁盘块等。系统则只保证被序请求一块特定的物理空间、磁盘块等。系统则只保证被请求的资源当前是空闲的,应用程序就允许直接存取它。请求的资源当前是空闲的,应用程序就允许直接存取它。 运行期间,系统需要额外的硬件、数据运行库的支持,这运行期间,系统需要额外的硬件、数据运行库的支持,这些库不会封装在内核中,而是存在于用户空间。些库不会封装在内核中,而是存在于用户空间。17 (2)无核)无核 没有专门的内核,所有软件程序都运行在用户空间。在系没有专门的内核,所有软件程序都运行在用
17、户空间。在系统运行过程中,它们不永久占据某些存储单元,也可能在统运行过程中,它们不永久占据某些存储单元,也可能在完成一些任务后被终止。完成一些任务后被终止。 为了完成操作系统的各项工作,系统必须具有一些特定的为了完成操作系统的各项工作,系统必须具有一些特定的所谓所谓“元对象元对象”,一旦某个应用程序需要执行操作系统的,一旦某个应用程序需要执行操作系统的工作,如进程的调度、通信等,它就启动相应的工作,如进程的调度、通信等,它就启动相应的“元对元对象象”,创建一个该对象的实例,当任务结束,这个实例也,创建一个该对象的实例,当任务结束,这个实例也就终止了。就终止了。185.体系结构案例分析体系结构案
18、例分析了解常见操作系统是如何组织系统各项功能的。了解常见操作系统是如何组织系统各项功能的。Embedded Linux19(1)Embedded LinuxLinux的环境改编版,系统架构不变。的环境改编版,系统架构不变。Linux在整体内核结在整体内核结构的基础上融入了微内核思想。构的基础上融入了微内核思想。Linux系统结构系统结构 Linux体系包含四个部分。体系包含四个部分。系统调用接口为应用程序提供调用系统功系统调用接口为应用程序提供调用系统功能的渠道,它本身由一系列代码构成(子能的渠道,它本身由一系列代码构成(子程序)。调用入口在用户态,接收应用程程序)。调用入口在用户态,接收应用
19、程序的调用和实参。然后进入核心态,调用序的调用和实参。然后进入核心态,调用内核服务,服务执行完成后向接口子程序内核服务,服务执行完成后向接口子程序返回服务结构数据,接口返回用户态,再返回服务结构数据,接口返回用户态,再向应用程序返回服务结果数据。向应用程序返回服务结果数据。Linux内核:运行在核心态的一系列子程序,内核:运行在核心态的一系列子程序,向上为调用接口提供服务,向下调用各种向上为调用接口提供服务,向下调用各种硬件驱动程序操作硬件资源。硬件驱动程序操作硬件资源。20 Linux内核结构内核结构 Linux内核由众多代码文内核由众多代码文件组成,编译连接为一个件组成,编译连接为一个单独
20、可执行文件。单独可执行文件。 内核根据模块机制将某些内核根据模块机制将某些非核心任务封装成外部模非核心任务封装成外部模块,在运行过程中动态加块,在运行过程中动态加载和卸载。这种方式与微载和卸载。这种方式与微内核的差别在于:系统有内核的差别在于:系统有些特殊的处理方法,使动些特殊的处理方法,使动态加载的模块运行在核心态加载的模块运行在核心态。态。 Linux内核框架如图。内核框架如图。 核心级部分即核心级部分即Linux内核,内核,它既综合了层次设计的特它既综合了层次设计的特点、又存在同层间的相互点、又存在同层间的相互调用。调用。21 Linux结构的特点结构的特点 引入了模块体系(引入了模块体
21、系(Modules)实现了它从单内核向微内核)实现了它从单内核向微内核的转变,同时又兼具两者的特点。的转变,同时又兼具两者的特点。 模块动态加载进入内核态,故具有单内核高效的特点,避模块动态加载进入内核态,故具有单内核高效的特点,避免了微内核在消息传递方面的资源开销。免了微内核在消息传递方面的资源开销。 动态加载克服了单内核的静态性和单一性,可灵活、动态动态加载克服了单内核的静态性和单一性,可灵活、动态地分配内核空间资源。地分配内核空间资源。 管理模块需要额外的管理结构和代码,占用更多内存。管理模块需要额外的管理结构和代码,占用更多内存。 模块加载、卸载时会轻微增加资源额外开销,降低系统效模块
22、加载、卸载时会轻微增加资源额外开销,降低系统效率。率。 模块一旦加载即成为内核的一部分,不完善的内核给系统模块一旦加载即成为内核的一部分,不完善的内核给系统安全带来隐患。安全带来隐患。 模块与内核之间的兼容问题不易解决。模块与内核之间的兼容问题不易解决。225.1.2 实时特性实时特性实时性:控制系统能够及时处理系统中发生的或要求控制的实时性:控制系统能够及时处理系统中发生的或要求控制的外部事件的能力。外部事件的能力。 实时性实际上是系统对各种突发事件的响应能力,这些事实时性实际上是系统对各种突发事件的响应能力,这些事件包括被控对象的变化、人的操作、系统自身故障等。件包括被控对象的变化、人的操
23、作、系统自身故障等。 所有这些事件纷繁复杂,因此嵌入式系统的设计必须对事所有这些事件纷繁复杂,因此嵌入式系统的设计必须对事件进行分级,保证某些关键事件的响应。件进行分级,保证某些关键事件的响应。 系统的响应包括显示输出、通信输出、控制输出等。系统的响应包括显示输出、通信输出、控制输出等。231.实时性能实时性能(1)实时系统和实时嵌入式操作系统)实时系统和实时嵌入式操作系统 实时系统指计算结果的正确性不仅依赖于计算结果的逻实时系统指计算结果的正确性不仅依赖于计算结果的逻辑正确性,还依赖于计算结果产生时间的计算机系统。辑正确性,还依赖于计算结果产生时间的计算机系统。 实时系统要求各项任务应在可确
24、定的、满足要求的时间实时系统要求各项任务应在可确定的、满足要求的时间内完成。内完成。实时系统的分类:(按响应时间)实时系统的分类:(按响应时间) 强实时系统:系统响应时间在强实时系统:系统响应时间在msus级级 一般实时系统:系统响应时间在一般实时系统:系统响应时间在x ms级级 弱实时系统:系统响应时间在数十秒。弱实时系统:系统响应时间在数十秒。按系统错过时限的严重性按系统错过时限的严重性 硬实时系统:系统必须严格按照限时硬实时系统:系统必须严格按照限时完成任务,否则即意味着严重事故。完成任务,否则即意味着严重事故。 软实时系统:在负荷较重时允许在一定程度上降低实时性要求,一旦软实时系统:在
25、负荷较重时允许在一定程度上降低实时性要求,一旦任务超时限不会引起严重后果。任务超时限不会引起严重后果。24 实时嵌入式操作系统:实时嵌入式操作系统: 应用于嵌入式系统中,有能力在响应时间边界内提供满足应用于嵌入式系统中,有能力在响应时间边界内提供满足要求的服务的操作系统。要求的服务的操作系统。 操作系统的各方面任务都必须提供足够高的服务效率,如操作系统的各方面任务都必须提供足够高的服务效率,如进程调度、进程间通信、内存操作等。进程调度、进程间通信、内存操作等。应用类型响应要求人机接口设计复杂性功能性任务处理数文件系统机器实现机器人控制us1ms简单/无简单低低于5无板级数采仪表电机控制1ms有
26、时中中中/多于10无工作站过程控制客户化微机科学数据采集us1ms简单易用高高多有带局域网高性能微机医疗影像50有高性能微机25 (2)实时系统特征)实时系统特征 异步事件响应:及时响应各种突发事件(随机产生)。异步事件响应:及时响应各种突发事件(随机产生)。 确定的切换时间和中断延迟时间确定的切换时间和中断延迟时间 抢占式调度:高优先级任务抢占低级任务的控制权,保证抢占式调度:高优先级任务抢占低级任务的控制权,保证高级任务的响应速度。高级任务的响应速度。 优先级中断和调度优先级中断和调度 同步:提供同步和协调共享数据使用和时间执行的手段。同步:提供同步和协调共享数据使用和时间执行的手段。 内
27、存锁定:将程序和部分程序锁定在内存中,减少它们对内存锁定:将程序和部分程序锁定在内存中,减少它们对存储器的访问。存储器的访问。 连续文件存储方式连续文件存储方式26 在许多嵌入式操作系统中不存在文件系统和存储管理,整在许多嵌入式操作系统中不存在文件系统和存储管理,整个软件部分做成一个映象,引导加载时全部进入内存,不个软件部分做成一个映象,引导加载时全部进入内存,不区分内核空间和用户空间。区分内核空间和用户空间。 一般实时操作系统的系统软件和应用软件之间界限分明,一般实时操作系统的系统软件和应用软件之间界限分明,并提供开发、测试、应用环境。嵌入式实时应用系统的软并提供开发、测试、应用环境。嵌入式
28、实时应用系统的软件开发受时间、空间开销的限制,需要在专门的开发平台件开发受时间、空间开销的限制,需要在专门的开发平台上进行软件交叉开发,开发环境与运行环境不同。上进行软件交叉开发,开发环境与运行环境不同。 嵌入式实时操作系统属于强实时系统,响应时间在嵌入式实时操作系统属于强实时系统,响应时间在msus级级 嵌入式操作系统规模小,固化使用,与应用程序融合在一嵌入式操作系统规模小,固化使用,与应用程序融合在一起,可见实时嵌入式系统的极限形式就是基本的单片机应起,可见实时嵌入式系统的极限形式就是基本的单片机应用系统。用系统。27 (3)内核实现)内核实现操作系统的结构操作系统的结构 采用微内核结构,
29、内核仅包含操作系统最重要的核心功能,采用微内核结构,内核仅包含操作系统最重要的核心功能,是构成一个操作系统其它部分的最小集。是构成一个操作系统其它部分的最小集。要求要求 多任务管理:多任务对应多个外部事件的响应,系统内核多任务管理:多任务对应多个外部事件的响应,系统内核向各任务分配向各任务分配CPU以保证并发性。以保证并发性。 任务抢占调度:多任务间高级抢占低级的任务抢占调度:多任务间高级抢占低级的CPU控制权。控制权。 快速灵活的通信和同步:任务间、任务与中断间的数据交快速灵活的通信和同步:任务间、任务与中断间的数据交换快速灵活。换快速灵活。 性能边界:实时内核须考虑系统最坏情况的性能优化,
30、以性能边界:实时内核须考虑系统最坏情况的性能优化,以及对不断增加的复杂性的支持能力。及对不断增加的复杂性的支持能力。 其它特殊考虑:内存管理、时钟管理、其它特殊考虑:内存管理、时钟管理、I/O系统管理等方系统管理等方面。面。28 (4)实时性能指标)实时性能指标 任务切换时间任务切换时间 进行任务切换时保存恢复进行任务切换时保存恢复CPU现场的时间开销和现场的时间开销和CPU寄存器开销。寄存器开销。 中断延迟时间中断延迟时间普通中断的延迟时间包括:普通中断的延迟时间包括: 最大中断屏蔽时间、得到指向最大中断屏蔽时间、得到指向ISP(中断服务程序)向量的时间、(中断服务程序)向量的时间、所有寄存
31、器压栈的时间、执行中断处理的时间。所有寄存器压栈的时间、执行中断处理的时间。不可屏蔽不可屏蔽NMI中断的延迟时间包括:中断的延迟时间包括: NMI的中断屏蔽时间即单条指令的最大执行时间、开始执行的中断屏蔽时间即单条指令的最大执行时间、开始执行NMI-ISR的时间、的时间、CPU寄存器内容压栈的时间、最长指令执行时间。寄存器内容压栈的时间、最长指令执行时间。减小的措施:减少中断屏蔽,使用不可屏蔽减小的措施:减少中断屏蔽,使用不可屏蔽NMI中断等。中断等。 系统响应时间系统响应时间 系统在发出处理请求到给出应答信号的时间。系统在发出处理请求到给出应答信号的时间。29 程序代码占用空间程序代码占用空
32、间 内核代码的规模内核代码的规模 数据占用空间数据占用空间 在执行程序时开辟的内存大小,与程序中能建立的最大任务数、在执行程序时开辟的内存大小,与程序中能建立的最大任务数、最大事件数以及所开辟的堆栈大小有关。最大事件数以及所开辟的堆栈大小有关。302.实时嵌入式操作系统案例实时嵌入式操作系统案例各种实时操作系统是如何解决实时性问题的?各种实时操作系统是如何解决实时性问题的?(1)uC/OS-II内核结构内核结构 可配置的实时操作系统,只包含任务调度、任务管理、时可配置的实时操作系统,只包含任务调度、任务管理、时间管理、内存管理和任务间通信与同步等功能。全部核心间管理、内存管理和任务间通信与同步
33、等功能。全部核心代码代码8.3KB,具有良好的可裁剪性,实际代码最少只需,具有良好的可裁剪性,实际代码最少只需2.7KB。 层次结构如图。层次结构如图。 硬件抽象层:针对所使用的硬件抽象层:针对所使用的CPU平台,包括中断级任务切换、任平台,包括中断级任务切换、任务级任务切换的底层实现、时钟节拍产生和处理、中断相关处理务级任务切换的底层实现、时钟节拍产生和处理、中断相关处理等。移植时须改写。等。移植时须改写。 系统向用户提供系统系统向用户提供系统API,所有其它功能和,所有其它功能和库全部需要重新编写。库全部需要重新编写。31 OS_CORE.c:核心部分,包括操作系统初始化、操作:核心部分,
34、包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、系统运行、中断进出的前导、时钟节拍、任务调度、事件处理。事件处理。 OS_TASK.c:任务管理模块,与任务操作紧密相关的:任务管理模块,与任务操作紧密相关的内容,如:任务的建立、删除、挂起、恢复等。内容,如:任务的建立、删除、挂起、恢复等。 OS_TIME.c:时间管理模块,以时间节拍为最小单位:时间管理模块,以时间节拍为最小单位实现任务延时等操作。实现任务延时等操作。 OS_Q.c、OS_MBOX.c、OS_SEM.c:任务间通信和同:任务间通信和同步模块,实现任务间相互联系和对临界资源的访问。步模块,实现任务间相互联系
35、和对临界资源的访问。OS_MEM.c:内存管理模:内存管理模块,为面向用户任务中的块,为面向用户任务中的动态内存分配提供满足实动态内存分配提供满足实时性要求的有效支持。时性要求的有效支持。还包括:还包括:O S _ C F G . h 、INCLIUDE.h:系统配置:系统配置头文件头文件32 任务调度方式任务调度方式 每个任务具有每个任务具有5种状态:休眠、就绪、运行、挂起、被中断。种状态:休眠、就绪、运行、挂起、被中断。状态间转换见图。状态间转换见图。 系统采用固定优先级的抢占式调系统采用固定优先级的抢占式调度方式。度方式。 系统最多支持系统最多支持64个任务,其中个任务,其中8个个系统任
36、务,其余为用户任务。各系统任务,其余为用户任务。各任务采用任务标识符表示优先级。任务采用任务标识符表示优先级。 系统不支持时间片轮转调度和优系统不支持时间片轮转调度和优先级继承、置顶。先级继承、置顶。33 时间性能时间性能 中断一旦被识别立即保护现场,执行中断服务子程序,结中断一旦被识别立即保护现场,执行中断服务子程序,结束后返回。束后返回。 中断处理所用时间包括:中断延迟、中断响应、中断恢复。中断处理所用时间包括:中断延迟、中断响应、中断恢复。34 空间性能空间性能 数据存储区的要求:数据存储区的要求: 应用程序的应用程序的RAM需求需求 内核数据区的内核数据区的RAM需求,小于需求,小于4
37、K 各任务栈需求的总和各任务栈需求的总和 最多中断嵌套的栈需求最多中断嵌套的栈需求 程序存储区的要求程序存储区的要求 uc/OS-II对硬件要求很低,最小可减至对硬件要求很低,最小可减至2KB35 (2)RTLinux设计思想设计思想 绝大多数实时应用的任务是可分成实时和非实时两部分的。绝大多数实时应用的任务是可分成实时和非实时两部分的。实时任务通常对操作系统支持的需求很弱,而需要较多操实时任务通常对操作系统支持的需求很弱,而需要较多操作系统支持的多为非实时任务。作系统支持的多为非实时任务。 构造一个简单的强实时内核,应用的实时部分作为实时进构造一个简单的强实时内核,应用的实时部分作为实时进程
38、直接运行在这个强实时核上,原来的程直接运行在这个强实时核上,原来的Linux核心作为一核心作为一个优先级最低的任务被实时内核调度,应用的非实时部分个优先级最低的任务被实时内核调度,应用的非实时部分作为非实时进程运行于作为非实时进程运行于Linux核心上,获得核心上,获得Linux提供的提供的所有服务。所有服务。36 主要特点主要特点 引进了一个小的实时核心,将引进了一个小的实时核心,将Linux改造成完全抢占式调改造成完全抢占式调度。度。 保留了保留了Linux的本质功能,可利用的本质功能,可利用Linux及其工具的快速及其工具的快速发展能力提供现代操作系统和环境的方便和强大功能。发展能力提供
39、现代操作系统和环境的方便和强大功能。 实时任务不能调用系统功能,必须通过读写内存和实时实时任务不能调用系统功能,必须通过读写内存和实时FIFO的方式与的方式与Linux任务通信,而后由它们调用任务通信,而后由它们调用Linux功功能。能。 实时任务可直接控制实时任务可直接控制CPU,可拥有对,可拥有对Linux的控制权。的控制权。 实时任务实际上是实时任务实际上是Linux的核心任务。的核心任务。37 系统原理系统原理 RTLinux在在Linux的基础上作如图改进,底层信息在送达的基础上作如图改进,底层信息在送达Linux内核之前被实时核截获,优先供实时任务使用,因内核之前被实时核截获,优先
40、供实时任务使用,因此此Linux内核及其进程都只能在实时任务释放内核及其进程都只能在实时任务释放CPU硬件控硬件控制权的条件下启动。制权的条件下启动。38 实现机制实现机制中断机制:中断控制硬件与中断机制:中断控制硬件与Linux核之间增加了一个软件仿核之间增加了一个软件仿真层。依靠一个特定的寄存器决定中断是否对真层。依靠一个特定的寄存器决定中断是否对Linux开放,开放,如果关闭如果关闭Linux中断,则所有中断不会触发中断,则所有中断不会触发Linux的中断的中断服务程序,直到中断开放。服务程序,直到中断开放。实时任务:实时任务:RTLinux采用模块加载技术,利用由核心控制的采用模块加载
41、技术,利用由核心控制的调度程序调度实时任务的加载、运行,作为调度程序调度实时任务的加载、运行,作为Linux内核模内核模块的实时任务执行在内核空间,可提高执行效率。块的实时任务执行在内核空间,可提高执行效率。任务调度:按优先级的抢占式调度对实时任务进行调度,任务调度:按优先级的抢占式调度对实时任务进行调度,Linux任务可采用其它方式进行调度。任务可采用其它方式进行调度。时钟机制:为避免实时任务调度中任务启动时间与预定时刻时钟机制:为避免实时任务调度中任务启动时间与预定时刻间的偏差(任务发生抖动),需要精确的时钟控制。间的偏差(任务发生抖动),需要精确的时钟控制。RTLinux将定时器设计成终
42、端计时中断方式,根据最近进将定时器设计成终端计时中断方式,根据最近进程的需要不断调整定时器的定时间隔。可获得较高的时钟程的需要不断调整定时器的定时间隔。可获得较高的时钟精度,降低中断服务处理的开销。精度,降低中断服务处理的开销。IPC(进程间通信):(进程间通信):RTLinux的信息交换采用的信息交换采用FIFO方式,方式,其其FIFO是一个无结构的数据流。是一个无结构的数据流。395.1.3 操作系统裁剪操作系统裁剪 嵌入式操作系统的裁剪指嵌入式系统的开发者根据嵌入式嵌入式操作系统的裁剪指嵌入式系统的开发者根据嵌入式环境的应用特性,改造和简化已有操作系统的功能、结构,环境的应用特性,改造和
43、简化已有操作系统的功能、结构,使之满足新的嵌入式系统应用的需求。使之满足新的嵌入式系统应用的需求。 重要环节:重要环节: 定制操作系统;定制操作系统; 裁剪配置内核;裁剪配置内核; 编译安装内核;编译安装内核;401.定制操作系统定制操作系统 选择合适的标准嵌入式操作系统产品的合适版本,考虑选择合适的标准嵌入式操作系统产品的合适版本,考虑其基本体系结构、性能指标是否满足实际应用的要求。其基本体系结构、性能指标是否满足实际应用的要求。 常见的可选系统:常见的可选系统:Linux系列、系列、uC/OS、VxWorks、WinCE、QNX等等 关键的选择指标:系统规模、支持进程数量、进程间通关键的选
44、择指标:系统规模、支持进程数量、进程间通信的数据吞吐量和速度、进程响应时间、代码改写和重信的数据吞吐量和速度、进程响应时间、代码改写和重新配置方便等。新配置方便等。412.裁剪配置内核裁剪配置内核(1)原则)原则可裁剪性可裁剪性小型化:程序规模须满足硬件要求;小型化:程序规模须满足硬件要求;适当功能:去除多余功能,只保留具体应用所须的功能;适当功能:去除多余功能,只保留具体应用所须的功能;完备性:剪裁过程中须注意系统各模块间的联系,避免由于某一部完备性:剪裁过程中须注意系统各模块间的联系,避免由于某一部分的修改造成其它环节出现不安全的隐患;分的修改造成其它环节出现不安全的隐患;(2)对象)对象
45、系统改造需要裁剪的功能对象包括:系统改造需要裁剪的功能对象包括:启动程序:系统的复位向量,引导方式;启动程序:系统的复位向量,引导方式;内核:进程、线程的调度、通信,中断管理与响应,存储管理;内核:进程、线程的调度、通信,中断管理与响应,存储管理;可配置软件包:高级数学、图形等计算分析软件;可配置软件包:高级数学、图形等计算分析软件;各种设备驱动程序:各硬件系统的驱动操作。各种设备驱动程序:各硬件系统的驱动操作。42 (3)方法)方法对于操作系统首先考虑:对于操作系统首先考虑: 系统类型:整体式、层次式、微内核式;系统类型:整体式、层次式、微内核式; 源码开放程度;源码开放程度; 实时性指标;
46、实时性指标;系统改造的大致步骤:系统改造的大致步骤: 针对提供裁剪配置平台的操作系统,增添开发工具中针对提供裁剪配置平台的操作系统,增添开发工具中的配置信息。的配置信息。 修改启动代码,包括启动、系统初始化,如是否需要修改启动代码,包括启动、系统初始化,如是否需要引导、初始化哪些寄存器等。引导、初始化哪些寄存器等。 重新配置内核,如中断控制器的结构、处理方式等须重新配置内核,如中断控制器的结构、处理方式等须根据实际硬件平台进行修改。根据实际硬件平台进行修改。 由于内核修改的实际应用需求的差异,涉及应用程序由于内核修改的实际应用需求的差异,涉及应用程序的接口也需要改变,上层用户程序也须作相应修改
47、。的接口也需要改变,上层用户程序也须作相应修改。433.编译安装内核编译安装内核 操作系统的修改、配置是在代码层上进行的,可以在任何操作系统的修改、配置是在代码层上进行的,可以在任何环境下完成。改造完成后则需要编译连接生成特定处理器环境下完成。改造完成后则需要编译连接生成特定处理器所要求的机器码文件,在利用一定方式写到目标硬件特定所要求的机器码文件,在利用一定方式写到目标硬件特定的存储器位置上。的存储器位置上。 交叉编译:在一个平台上生成另一平台上执行的代码。交叉编译:在一个平台上生成另一平台上执行的代码。 主机平台(主机平台(Host):开发用计算机(宿主机),通常使):开发用计算机(宿主机
48、),通常使用用Windows或或Linux系统系统 目的平台(目的平台(Target):待开发的嵌入式系统软硬件平台。):待开发的嵌入式系统软硬件平台。 交叉编译链:能在主机平台上编译目的平台软件的一系列交叉编译链:能在主机平台上编译目的平台软件的一系列编译软件及其设置信息。编译软件及其设置信息。 汇编器,连接器、汇编器,连接器、C编译器、用于处理可执行程序和库的一些基编译器、用于处理可执行程序和库的一些基本工具,如本工具,如Linux宿主的宿主的glibc软件。软件。44 生成交叉编译链的步骤:生成交叉编译链的步骤: 用主机平台上原编译环境生成目标平台的汇编器、连用主机平台上原编译环境生成目
49、标平台的汇编器、连接器;接器; 用主机平台上原编译环境生成目标平台的用主机平台上原编译环境生成目标平台的C编译器;编译器; 用新生成的连接器、编译器生成目标平台的基本程序;用新生成的连接器、编译器生成目标平台的基本程序; 用新的汇编器、连接器、程序库编译目标平台的所有用新的汇编器、连接器、程序库编译目标平台的所有软件。软件。 编译后软件安装的渠道:编译后软件安装的渠道: JTAG、RS-232、TFTP 通常通常BootLoader依靠依靠JTAG安装;安装; 有了有了BootLoader支持后就可以依靠支持后就可以依靠RS-232和和TFTP安安装其它软件了。装其它软件了。454.实例分析实
50、例分析(1)uC/OS-II软件包括:实时操作系统内核、与处理器相关部分代码、与应用相关软件包括:实时操作系统内核、与处理器相关部分代码、与应用相关部分代码和用户应用程序。部分代码和用户应用程序。内核不开放,开发者不能修改内核部分,只能在内核确定的范围内对内核不开放,开发者不能修改内核部分,只能在内核确定的范围内对系统作一些改变。系统作一些改变。改写处理器相关代码: OS_CPU.H OS_CPU_A.ASM OS_CPU_C.C)改写应用相关代码: OS_CFG.H INCLUDES.H46 (2)标准)标准Linux系统裁剪系统裁剪 基本思想基本思想 由功能齐全、运行良好、公开的代码基派生
51、出适用于软硬件平台、由功能齐全、运行良好、公开的代码基派生出适用于软硬件平台、功能减少(针对某些应用)、体系结构更紧凑、规模更精简的代功能减少(针对某些应用)、体系结构更紧凑、规模更精简的代码。码。 裁剪的主要问题:裁剪的主要问题: 系统运行开销(静态映象体积、动态运行的内存和系统运行开销(静态映象体积、动态运行的内存和CPU开销)、开销)、 实时性能、实时性能、 虚拟内存对硬件虚拟内存对硬件MMU的依赖、的依赖、 图形界面等图形界面等 根据实际资源和功能要求适当删除和降低一些功能。根据实际资源和功能要求适当删除和降低一些功能。 典型的派生版本:典型的派生版本: 以满足系统运行开销要求的基本目
52、的:以满足系统运行开销要求的基本目的:ucLinux,小型化,小型化 以满足实时性能要求为基本目的:以满足实时性能要求为基本目的:RTLinux,实时化,实时化47 关键步骤关键步骤 精简、重编译内核,去除多余模块;精简、重编译内核,去除多余模块; 重新编写重新编写BootLoader,制作,制作Boot ROM用于加载嵌入式用于加载嵌入式Linux内内核。核。 系统库的改造:选择必要的系统库,去除无用库,修改系统库代系统库的改造:选择必要的系统库,去除无用库,修改系统库代码。码。 对设备驱动程序进行处理,削弱原系统中不需要的冗余驱动软件,对设备驱动程序进行处理,削弱原系统中不需要的冗余驱动软
53、件,根据应用的具体硬件设计新的驱动程序。根据应用的具体硬件设计新的驱动程序。48 内核的裁剪、编译、安装内核的裁剪、编译、安装 在宿主平台(在宿主平台(PC+Linux)上利用宿主机工具对)上利用宿主机工具对Linux原代码进行原代码进行重新编辑,包括:重新编辑,包括: 修改某些代码内容;修改某些代码内容; 选择准备编译的文件(选择准备编译的文件(.c、.h)和文件夹;和文件夹; 在宿主平台上生成合适的交叉编译工具链:在宿主平台上生成合适的交叉编译工具链: 设置宿主设置宿主Linux系统的相关环境变量;系统的相关环境变量; 编译生成编译生成Linux环境下的汇编器、连接器、环境下的汇编器、连接
54、器、c编译器(生成前为原代编译器(生成前为原代码文件);码文件); 配置用于目标平台(配置用于目标平台( ARM)的)的c库文件;库文件; 配置路径环境变量;配置路径环境变量; 改变某些代码文件的编译参数,主要是内核文件。改变某些代码文件的编译参数,主要是内核文件。 利用编译工具对代码进行编译;利用编译工具对代码进行编译; 将编译连接完成的机器码文件安装到目标平台。将编译连接完成的机器码文件安装到目标平台。495.2 用户接口(用户接口(UI)5.2.1 UI的定义的定义 UI指人与计算机之间的信息交互通道,即人机界面。指人与计算机之间的信息交互通道,即人机界面。 UI包含了信息交换所设计的硬
55、件、软件,如显示器、键包含了信息交换所设计的硬件、软件,如显示器、键盘、鼠标等。盘、鼠标等。505.2.2 UI的发展历程的发展历程 早期简单原始的形式:指示灯,开关早期简单原始的形式:指示灯,开关 文本用户界面:专业人员使用,多行字符显示器,键盘文本用户界面:专业人员使用,多行字符显示器,键盘行命令输入行命令输入 图形用户界面:更贴近人类自然信息交互方式,更清晰图形用户界面:更贴近人类自然信息交互方式,更清晰的文字图形显示器,键盘、鼠标直观操作。的文字图形显示器,键盘、鼠标直观操作。 多媒体和多通道界面:充分调动人类各种自然感官和表多媒体和多通道界面:充分调动人类各种自然感官和表情动作,实现尽可能的人性化信息交换,信息输出设备情动作,实现尽可能的人性化信息交换,信息输出设备包括各类字符、图形包括各类字符、图形/图像、视频影像、声音等,信息输图像、视频影像、声音等,信息输入设备包括原有的键盘、鼠标以及声音,图像等等。入设备包括原有的键盘、鼠标以及声音,图像等等。515.2.3 嵌入式嵌入式UI的结构特点的结构特点完整的完整的UI系统由硬件和软件组成:系统由硬件和软件组成:硬件包括显示单元、音频输出、键盘鼠标、硬件包括显示单元、音频输出、键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 傅雷家书读书笔记(汇编15篇)
- 低保的申请书集合15篇
- 建筑工程师执业资格考试高频考点梳理含答案
- 铁路招聘会面试题及答案
- 2025临床执业医师真题卷
- 2025吉林教师考试秋季真题
- 矿产集团审计师审计实务操作考试题集含答案
- 2025年穿戴式健康监测设备市场趋势报告
- 2025重庆轨道交通集团招聘130人笔试参考题库附带答案详解(3卷合一版)
- 2025重庆奉节县县属国有企业招聘专业技术人员13人笔试参考题库附带答案详解(3卷合一版)
- 2025房屋买卖合同公证书范文
- 气管切开患者的管理与康复治疗
- 《中国急性肾损伤临床实践指南(2023版)》解读
- 2025高考化学专项复习:60个高中化学常考实验
- 江苏自考现代企业经营管理-练习题(附答案)27875
- 场地空地出租合同范本
- 大学体育与科学健身智慧树知到期末考试答案2024年
- 月子中心员工礼仪培训方案
- 电镀制造成本预估表
- 2023大型新能源集控中心建设项目技术方案
- 2023年研究生类社会工作硕士(MSW)考试题库
评论
0/150
提交评论