ARM汇编语言程序设计基础第8章嵌入式系统.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《ARM汇编语言程序设计基础第8章嵌入式系统.ppt》由会员分享,可在线阅读,更多相关《ARM汇编语言程序设计基础第8章嵌入式系统.ppt(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8章章 嵌入式系统软件及操作系统基础嵌入式系统软件及操作系统基础8.1 嵌入式软件基础嵌入式软件基础n8.1.1 嵌入式软件的特点n应用在嵌入式计算机系统当中的各种软件统称为嵌入式软件,作为嵌入式系统的一个组成部分,目前嵌入式软件的种类和规模都得到了极大的发展,形成了一个完整、独立的体系。除了具有通用软件的一般特性,同时还具有一些与嵌入式系统密切相关的特点,如:n(l)规模较小n在一般情况下,嵌入式系统的资源多是比较有限的,要求嵌入式软件必须尽可能地精简,多数的嵌入式软件都在几MB以内。n(2)开发难度大n嵌入式系统由于硬件资源的有限,使得嵌入式软件在时间和空间上都受到严格的限制,需要开发
2、人员对编程语言、编译器和操作系统有深刻的了解,才有可能开发出运行速度快、存储空间少、维护成本低的软件。嵌入式软件一般都要涉及到底层软件的开发,应用软件的开发也是直接基于操作系统的,这就要求开发人员具有扎实的软、硬件基础,能灵活运用不同的开发手段和工具,具有较丰富的开发经验。嵌入式软件的运行环境和开发环境比PC机复杂,嵌入式软件是在目标系统上运行的,而嵌入式软件的开发工作则是在另外的开发系统中进行,当应用软件调试无误后,再把它放到目标系统上去。n(3)高实时性和可靠性要求n具有实时处理的能力是许多嵌入式系统的基本要求,实时性要求软件对外部事件做出反应的时间必须要快,在某些情况下还要求是确定的、可
3、重复实现的,不管系统当时的内部状态如何,都是可以预测的。同时,对于事件的处理一定要在限定的时间期限之前完成,否则就有可能引起系统的崩溃。n在航天控制、核电站、工业机器人等实时系统对嵌入式软件的可靠性要求是非常高的,一旦软件出了问题,其后果是非常严重的。n(4)软件固化存储n为了提高系统的启动速度、执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或微处理器中。8.1.2嵌入式软件的分类n1系统软件系统软件n系统软件控制和管理嵌入式系统资源,为嵌入式应用提供支持的各种软件,如设备驱动程序、嵌入式操作系统、嵌入式中间件等。n2应用软件应用软件n应用软件是嵌入式系统中的上层软件,它定义了嵌入
4、式设备的主要功能和用途,并负责与用户进行交互。应用软件是嵌入式系统功能的体现,如飞行控制软件、手机软件、MP3播放软件、电子地图软件等,一般面向于特定的应用领域,。n3支撑软件支撑软件n支撑软件指辅助软件开发的工具软件,如系统分析设计工具、在线仿真工具、交叉编译器、源程序模拟器和配置管理工具等。n在嵌入式系统当中,系统软件和应用软件运行在目标平台的(即嵌入式设备上),而对于各种软件开发工具来说,它们大部分都运行在开发平台(PC机)上,运行Windows或Linux操作系统。8.1.3 嵌入式软件的体系结构n1无操作系统的嵌入式软件无操作系统的嵌入式软件n早期在嵌入式系统的应用范围主要集中在控制
5、领域,硬件的配置比较低,嵌入式软件的设计主要是以应用为核心,应用软件直接建立在硬件上,没有专门的操作系统,软件的规模也很小。n无操作系统的嵌入式软件主要采用循环轮转和中断(前后台)两种实现方式。n(1)循环轮转方式n循环轮转方式的基本设计思想是:把系统的功能分解为若干个不同的任务,放置在一个永不结束的循环语句当中,按照时间顺序逐一执行。当程序执行完一轮后,又回到程序的开头重新执行,循环不断。n循环轮转方式的程序简单、直观、开销小、可预测。软件的开发可以按照自顶向下、逐步求精的方式,将系统要完成的功能逐级划分成若干个小的功能模块进行编程,最后组合在一起。循环轮转方式的软件系统只有一条执行流程和一
6、个地址空间,不需要任务之间的调度和切换,其程序的代码都是固定的,函数之间的调用关系也是明确的,整个系统的执行过程是可预测的。n循环轮转方式的缺点是程序必须按顺序执行,无法处理异步事件,缺乏并行处理的能力。缺乏硬件上的时间控制机制,无法实现定时功能。n(2)中断方式n中断方式又称为前后台系统形式,系统在循环轮转方式的基础上增加了中断处理功能。ISR(Interrupt Service Routine,中断服务程序)负责处理异步事件,即前台程序(foreground),也称为事件处理级程序。而后台程序(background)是一个系统管理调度程序,一般采用的是一个无限的循环形式,负责掌管整个嵌入式
7、系统软、硬件资源的分配、管理以及任务的调度。后台程序也称为任务级程序。一般情形下,后台程序会检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。而一些对实时性有要求的操作通常由中断服务程序来完成,大多数的中断服务程序只做一些最基本的操作,如标记中断事件的发生等,其余的事情会延迟到后台程序去完成。n2有操作系统的嵌入式软件有操作系统的嵌入式软件n从20世纪80年代开始,操作系统出现在嵌入式系统上。如今,嵌入式操作系统在嵌入式系统中广泛应用,尤其是在功能复杂、系统庞大的应用中显得愈来愈重要。在应用软件开发时,程序员不是直接面对嵌入式硬件设备,而是采用一些嵌入式软件开发环境,在操作系统
8、的基础上编写程序。n在控制系统中,采用前后台系统体系结构的软件,在遇到强干扰时,可能会使应用程序产生异常、出错,甚至死循环的现象,从而造成系统的崩溃。而采用嵌入式操作系统管理的系统,在遇到强干扰时,可能只会引起系统中的某一个进程被破坏,但这可以通过系统的监控进程对其进行修复,系统具有自愈能力,不会造成系统崩溃。n在嵌入式操作系统环境下,开发一个复杂的应用程序,通常可以按照软件工程的思想,将整个程序分解为多个任务模块,每个任务模块的调试、修改几乎不影响其他模块。利用商业软件提供的多任务调试环境,可大大提高系统软件的开发效率,降低开发成本,缩短开发周期。n嵌入式操作系统本身是可以剪裁的,嵌入式系统
9、外设、相关应用也可以配置,所开发的应用软件可以在不同的应用环境、不同的处理器芯片之间移植,软件构件可复用,有利于系统的扩展和移植。n嵌入式软件的体系结构图如图8.1.2所示,最底层的是嵌入式硬件系统,包括嵌入式微处理器、存储器、键盘、LCD显示器等输入输出设备。在硬件层之上的是设备驱动层,它负责与硬件直接打交道,并为操作系统层软件提供所需的驱动支持。操作系统层可以分为基本部分和扩展部分,基本部分是操作系统的核心,负责整个系统的任务调度、存储管理、时钟管理和中断管理等功能;扩展部分为用户提供网络、文件系统、图形用户界面GUI、数据库等扩展功能,扩展部分的内容可以根据系统的需要来进行剪裁。在操作系
10、统的上面是一些中间件软件。最上层是网络浏览器、MP3播放器、文本编辑器、电子邮件客户端、电子游戏等各种应用软件,实现嵌入式系统的功能。图8.1.2 嵌入式软件体系结构8.1.4 嵌入式系统的设备驱动n嵌入式系统的设备驱动层用来完成嵌入式系统硬件设备所需要的一些软件初始化和管理。设备驱动层直接对硬件进行管理和控制,并为上层软件提供所需的驱动支持。n1板级支持包板级支持包n设备驱动层也称为BSP(Board Support Package,板级支持包),在BSP中把所有与硬件相关的代码都封装起来,为操作系统提供一个虚拟的硬件平台,操作系统运行在这个虚拟的硬件平台上。在BSP当中,使用一组定义好的编
11、程接口来与BSP进行交互,并通过BSP来访问真正的硬件。在嵌入式系统中,BSP类似于PC系统中的BIOS和驱动程序。BSP把嵌入式操作系统与具体的硬件平台隔离开来。n一般来说,BSP是针对某个特定的单板而设计的,系统都会提供相应的演示版本的BSP(最小系统BSP)。BSP对于用户(指系统开发人员)是开放的,用户可以根据不同的硬件需求对其进行改动或二次开发。在实际开发一个嵌入式系统的时候,通常可以找到一个与自己的硬件系统相近的演示版本的BSP,并以此为基础,进行修改和完善,以适应不同单板的需求。BSP主要包括BootLoader(引导加载程序)和设备驱动程序两个方面的内容。n对于不同的嵌入式操作
12、系统,BSP的具体结构和组成是不相同的。n2BootLoadernBootLoader(引导加载程序)是在操作系统内核运行之前运行的一小段程序。通过这段程序,初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置到一个合适的状态,以便为最终调用操作系统内核做好准备。BootLoader用来完成整个系统的加载启动任务。通常在系统上电或复位时,BootLoader程序从地址0 x00000000处开始执行。nBootLoader的功能与嵌入式系统的硬件平台直接相关,不同的CPU体系结构和板级设备配置,BootLoader的功能不同。一般来说,BootLoader主要包含片级初始化、板级初
13、始化和加载内核等一些基本功能。n(1)片级初始化n片级初始化是一个纯硬件的初始化过程,把微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。片级初始化主要完成设置微处理器的核心寄存器和控制寄存器、微处理器的核心工作模式及其局部总线模式等初始化。n(2)板级初始化n板级初始化是一个同时包含有软件和硬件在内的初始化过程,通过正确地设置各种寄存器的内容来完成微处理器以外的其他硬件设备的初始化。例如,初始化LED显示设备、定时器、串口通信和内存控制器,建立内存空间的地址映射,设置中断控制寄存器和某些软件的数据结构和参数等。n(3)加载内核n将操作系统和应用程序的映像从Flash存储器复制到系统的
14、内存当中,然后跳转到系统内核的第一条指令处继续执行。n3设备驱动程序设备驱动程序n在一个嵌入式系统中,可以没有操作系统,但设备驱动程序是必不可少的。设备驱动程序是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供访问接口。n不同功能的硬件设备,它们的设备驱动程序是不同的。但大多数的设备驱动程序都具有硬件启动(初始化)、硬件关闭(关机)、硬件停用(暂停)、硬件启用(重新启用)、读操作(读取数据)、写操作(写入数据)等基本功能。n设备驱动程序通常可以完成一些特定的功能,这些功能一般采用函数的形式来实现,这些函数有分层结构和混合结构两种组织结构形式。n在分层结构中,设备驱动程序中的函数分为硬件
15、接口和调用接口两种类型。硬件接口直接跟硬件打交道的,直接去操作和控制硬件设备;调用接口不直接与硬件打交道,它们调用硬件接口当中的函数,与上层软件(包括操作系统、中间件和应用软件)打交道的。分层结构把所有与硬件有关的细节都封装在硬件接口当中,在硬件要升级时,只需要改动硬件接口当中的函数即可,而上层接口当中的函数不用做任何修改。n在混合结构中,上层接口和硬件接口的函数是混在一起、相互调用的,之间没有明确的层次关系。8.1.5 嵌入式中间件n中间件是一种软件平台技术,在银行、证券、电信等行业的大型计算机应用系统中广泛应用。近年来,中间件技术也被引入到嵌入式系统的设计中,并与实时多任务操作系统紧密结合
16、。利用中间件技术可以使用户把精力集中到系统功能的实现上,实现嵌入式系统的软硬件协同设计。n嵌入式中间件是指不包括操作系统内核、设备驱动程序和应用软件在内的所有系统软件。嵌入式中间件把原本属于应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,为应用软件提供一个灵活、安全、移植性好、相互通信、协同工作的平台。n嵌入式中间件可以分为消息中间件、对象中间件、远程过程调用(Remote Procedure Calls,RPC)、数据库访问中间件、安全中间件等不同的类型。n一些公司可提供嵌入式中间件集成解决方案,如Sun公司的嵌入式Java,微软公司的.NET Compact Frame-wor
17、k,OMG(Object Management Group)的嵌入式CORBA等。8.2嵌入式操作系统基础嵌入式操作系统基础n8.2.1嵌入式操作系统的功能n在嵌入式系统中工作的操作系统称为EOS(Embedded Operating System,嵌入式操作系统),EOS的基本功能主要体现在以下两个方面:n1构成一个易于编程的虚拟机平台nEOS构成一个虚拟机平台,EOS把底层的硬件细节封装起来,为运行在它上面的软件(如中间件软件和各种应用软件)提供了一个抽象的编程接口。软件开发在这个编程接口的上进行,而不直接与机器硬件层打交道。EOS所提供的编程接口实际上就是操作系统对外提供的系统调用函数。
18、n2系统资源的管理者nEOS是一个系统资源的管理者,负责管理系统当中的各种软硬件资源,如处理器、内存、各种I/O设备、文件和数据等,使得整个系统能够高效、可靠地运转。n运行在嵌入式环境中的EOS其目标是为了完成某一项或有限项功能,而非通用型的操作系统,因此在性能和实时性方面有严格的限制,能耗、成本和可靠性通常是影响设计的重要因素,要求占用资源少,适合在有限存储空间运行,要求系统功能可以根据产品的设计要求进行剪裁、调整。n所有的EOS都有一个内核(kernel),内核是系统当中的一个组件,它包含了任务管理、存储管理、输入输出(I/O)设备管理和文件系统管理四个功能模块。其中:n 任务管理:对嵌入
19、式系统中的运行软件进行描述和管理,并完成处理机资源的分配与调度;n 存储管理:用来提高内存的利用率,方便用户的使用,并提供足够的存储空间;n I/O设备管理:方便设备的使用,提高CPU和输入输出设备的利用率;n 文件管理:解决文件资源的存储、共享、保密和保护等问题。n注意:不同的嵌入式系统的EOS所包含的组件可能各不相同,内核设计也可能各不相同的,完全取决于系统的设计以及实际的应用需求。8.2.2嵌入式操作系统的分类nEOS可以按照系统的类型、响应时间和软件结构等不同的标准来分类。n1按系统的类型分类按系统的类型分类n按照系统的类型,可以把EOS分为商业化系统、专用系统和开放源代码系统三大类。
20、n(1)商业化系统n商业化的EOS有风河公司(WindRiver)的VxWorks,微软公司的Windows CE,Palm公司的PalmOS等等,其特点是功能强大,性能稳定,辅助软件工具齐全,应用范围广泛,但成本较高。n(2)专用系统n专用系统是一些专业厂家为本公司产品特制的嵌入式操作系统,一般不提供给应用开发者使用。n(3)开放源代码系统n开放源代码的嵌入式操作系统有C/OS和各类嵌入式Linux系统等,具有免费、开源、性能优良、资源丰富、技术支持强等优点,是近年来发展迅速的一类操作系统。n2按响应时间分类按响应时间分类n按照系统对响应时间的敏感程度,EOS可以分为RTOS(Real Ti
21、me Operating Systems,实时操作系统)和非实时操作系统两大类:。nRTOS对响应时间有非常严格的要求,当某一个外部事件或请求发生时,相应的任务必须在规定的时间内完成相应的处理。RTOS可以分为硬实时和软实时两种情形。n(1)硬实时系统n硬实时系统对响应时间有严格的要求,如果响应时间不能满足可能会引起系统的崩溃或致命的错误。n(2)软实时系统n软实时系统对响应时间有要求,如果响应时间不能满足,将需要支付能够接受的额外代价。n非实时系统对响应时间没有严格的要求,各个进程分享处理器,以获得各自所需要的运行时间。n3按软件结构分类按软件结构分类n按照软件的体系结构,EOS可以分为单体
22、结构、分层结构和微内核结构三大类,如8.2.18.2.3所示。n(1)单体结构n单体结构是一种常见的组织结构,嵌入式Linux操作系统、Jbed RTOS、C/OS-II和PDOS都属于单体内核系统。在单体结构(monolithic)的操作系统中,中间件和设备驱动程序通常就集成在系统内核当中,整个系统通常只有一个可执行文件,里面包含了所有的功能组件。n单体结构的操作系统由一组功能模块组成,系统的各个模块之间可以相互调用,通信开销比较小,系统高度集成和相互关联,系统剪裁、修改、调试和维护不方便。图8.2.1 单体结构 图8.2.2 分层结构 n采用分层结构(layered)的操作系统内部分为若干
23、个层次(0N),各个层次之间的调用关系是单向的,即某一层次上的代码只能调用比它低层的代码。分层结构要求在每个层次上都要提供一组API接口函数,增加了系统的额外开销,但系统的开发和维护较为简单。典型代表有MS-DOS,其结构就是一个有代表性的、组织良好的分层结构。n(3)微内核结构n微内核(microkernel)结构把操作系统的大部分功能都剥离出去,在内核中只保留最核心的功能单元(如进程管理和存储管理),大部分的系统功能都位于内核之外,例如,将所有的设备驱动程序都被置于内核之外,如图8.2.3所示。n在微内核操作系统中,大部分的系统功能被放置在内核之外,客户单元和服务器单元的内存地址空间是相互
24、独立的,系统具有更高的安全性。新的功能组件也可以被动态地添加进来,扩展、调试、移植方便。在微内核操作系统中,核内组件与核外组件之间的通信方式是消息传递,而不是直接的函数调用,运行速度可能会慢一些。另外,由于它们的内存地址空间是相互独立的,在切换的时候,也会增加额外的开销。nOS-9、C Executive、VxWorks,CMX-RTX、Nucleus Plus和QNX等EOS采用的都是微内核结构。图8.2.3 微内核结构8.2.3常见的嵌入式操作系统简介n嵌入式操作系统是操作系统研究领域中的一个重要分支,有许多公司在从事相关方面的研究,开发了数以百计的各具特色的嵌入式操作系统产品,其中比较有
25、影响的系统有VxWorks、嵌入式Linux、Windows CE、C/OS-II和PalmOS等。n1VxWorksn美国WindRiver System公司开发的嵌入式实时操作系统VxWorks采用基于微内核的体系结构,整个系统由四百多个相对独立、短小精练的目标模块组成,用户可以根据自己的需要选择适当的模块,进行裁减和配置。VxWorks采用GNU类型的编译和调试器,专有的API函数,支持x86、Motorola MC68xxx、Coldfire、PowerPC、MIPS、ARM、i960等主流的32位处理器,具有良好的可靠性和卓越的实时性,是目前嵌入式系统领域中使用最广泛、市场占有率最高
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 汇编语言 程序设计 基础 嵌入式 系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内