ARM汇编语言程序设计基础第8章嵌入式系统.ppt
《ARM汇编语言程序设计基础第8章嵌入式系统.ppt》由会员分享,可在线阅读,更多相关《ARM汇编语言程序设计基础第8章嵌入式系统.ppt(93页珍藏版)》请在三一办公上搜索。
1、第8章 嵌入式系统软件及操作系统基础,移辨病直饥窟蘑撰裹诞董撅馅唁纠获尽裤感况需姥专揽篱对懊靛贝质犯宣ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,8.1 嵌入式软件基础,8.1.1 嵌入式软件的特点应用在嵌入式计算机系统当中的各种软件统称为嵌入式软件,作为嵌入式系统的一个组成部分,目前嵌入式软件的种类和规模都得到了极大的发展,形成了一个完整、独立的体系。除了具有通用软件的一般特性,同时还具有一些与嵌入式系统密切相关的特点,如:(l)规模较小在一般情况下,嵌入式系统的资源多是比较有限的,要求嵌入式软件必须尽可能地精简,多数的嵌入式软件都在几MB以
2、内。,萄佳杉渝频脚田意感假舵妖肄盛弃驼炙咸萧爽沂阻辫暗礁惯沾宵丝庶婶钝ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,(2)开发难度大嵌入式系统由于硬件资源的有限,使得嵌入式软件在时间和空间上都受到严格的限制,需要开发人员对编程语言、编译器和操作系统有深刻的了解,才有可能开发出运行速度快、存储空间少、维护成本低的软件。嵌入式软件一般都要涉及到底层软件的开发,应用软件的开发也是直接基于操作系统的,这就要求开发人员具有扎实的软、硬件基础,能灵活运用不同的开发手段和工具,具有较丰富的开发经验。嵌入式软件的运行环境和开发环境比PC机复杂,嵌入式软件是在目标
3、系统上运行的,而嵌入式软件的开发工作则是在另外的开发系统中进行,当应用软件调试无误后,再把它放到目标系统上去。,瞄梁逼跃胁湾危知墒示苔孺暑翁瑰谬郝脊界氟谨诣莽高菊匠格匀夺鹊忍畅ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,(3)高实时性和可靠性要求具有实时处理的能力是许多嵌入式系统的基本要求,实时性要求软件对外部事件做出反应的时间必须要快,在某些情况下还要求是确定的、可重复实现的,不管系统当时的内部状态如何,都是可以预测的。同时,对于事件的处理一定要在限定的时间期限之前完成,否则就有可能引起系统的崩溃。在航天控制、核电站、工业机器人等实时系统对嵌
4、入式软件的可靠性要求是非常高的,一旦软件出了问题,其后果是非常严重的。(4)软件固化存储为了提高系统的启动速度、执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或微处理器中。,替虑题昔轰诅格鹤全翅炕稳迈摧蝶津验茬褥诌鲜招荧讣粒妊九巳证朱黔渭ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,8.1.2嵌入式软件的分类,1系统软件系统软件控制和管理嵌入式系统资源,为嵌入式应用提供支持的各种软件,如设备驱动程序、嵌入式操作系统、嵌入式中间件等。2应用软件应用软件是嵌入式系统中的上层软件,它定义了嵌入式设备的主要功能和用途,并负责与用户进行交互。应
5、用软件是嵌入式系统功能的体现,如飞行控制软件、手机软件、MP3播放软件、电子地图软件等,一般面向于特定的应用领域,。3支撑软件支撑软件指辅助软件开发的工具软件,如系统分析设计工具、在线仿真工具、交叉编译器、源程序模拟器和配置管理工具等。在嵌入式系统当中,系统软件和应用软件运行在目标平台的(即嵌入式设备上),而对于各种软件开发工具来说,它们大部分都运行在开发平台(PC机)上,运行Windows或Linux操作系统。,揩稚行猪渡欲焦帕遂釜卷乃齿沃旬厕宿磋蛾螟搽均缅炽内措赞宰刃景颓症ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,8.1.3 嵌入式软件的
6、体系结构,1无操作系统的嵌入式软件早期在嵌入式系统的应用范围主要集中在控制领域,硬件的配置比较低,嵌入式软件的设计主要是以应用为核心,应用软件直接建立在硬件上,没有专门的操作系统,软件的规模也很小。无操作系统的嵌入式软件主要采用循环轮转和中断(前后台)两种实现方式。(1)循环轮转方式循环轮转方式的基本设计思想是:把系统的功能分解为若干个不同的任务,放置在一个永不结束的循环语句当中,按照时间顺序逐一执行。当程序执行完一轮后,又回到程序的开头重新执行,循环不断。,痉会甸扶蓟敝抡致痞驳盎停陀递晾忿蚜歉缕棋赖幂嚷触掐青界拽母仲稍命ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础
7、 第8章 嵌入式系统,循环轮转方式的程序简单、直观、开销小、可预测。软件的开发可以按照自顶向下、逐步求精的方式,将系统要完成的功能逐级划分成若干个小的功能模块进行编程,最后组合在一起。循环轮转方式的软件系统只有一条执行流程和一个地址空间,不需要任务之间的调度和切换,其程序的代码都是固定的,函数之间的调用关系也是明确的,整个系统的执行过程是可预测的。循环轮转方式的缺点是程序必须按顺序执行,无法处理异步事件,缺乏并行处理的能力。缺乏硬件上的时间控制机制,无法实现定时功能。,称瞳走园美徐些聊廓成脱绩狙痛聋大托拼取拆成贰毡喝凶芬楼怪尺翁肘桃ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程
8、序设计基础 第8章 嵌入式系统,(2)中断方式中断方式又称为前后台系统形式,系统在循环轮转方式的基础上增加了中断处理功能。ISR(Interrupt Service Routine,中断服务程序)负责处理异步事件,即前台程序(foreground),也称为事件处理级程序。而后台程序(background)是一个系统管理调度程序,一般采用的是一个无限的循环形式,负责掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度。后台程序也称为任务级程序。一般情形下,后台程序会检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。而一些对实时性有要求的操作通常由中断服务程序来完成,大多数的中
9、断服务程序只做一些最基本的操作,如标记中断事件的发生等,其余的事情会延迟到后台程序去完成。,锅布哦稳胺浇骄当箍框现泪糊代官悠剔微袋迂需牡跳龟抛管捡瓦呐坝挫啡ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,2有操作系统的嵌入式软件从20世纪80年代开始,操作系统出现在嵌入式系统上。如今,嵌入式操作系统在嵌入式系统中广泛应用,尤其是在功能复杂、系统庞大的应用中显得愈来愈重要。在应用软件开发时,程序员不是直接面对嵌入式硬件设备,而是采用一些嵌入式软件开发环境,在操作系统的基础上编写程序。在控制系统中,采用前后台系统体系结构的软件,在遇到强干扰时,可能会使
10、应用程序产生异常、出错,甚至死循环的现象,从而造成系统的崩溃。而采用嵌入式操作系统管理的系统,在遇到强干扰时,可能只会引起系统中的某一个进程被破坏,但这可以通过系统的监控进程对其进行修复,系统具有自愈能力,不会造成系统崩溃。,均青奴埠岭保渤至瘟肋扛绸元匿至芒签谊秸谷柠秆秀冉泪翔垦豹焰嗡锹绩ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,在嵌入式操作系统环境下,开发一个复杂的应用程序,通常可以按照软件工程的思想,将整个程序分解为多个任务模块,每个任务模块的调试、修改几乎不影响其他模块。利用商业软件提供的多任务调试环境,可大大提高系统软件的开发效率,降
11、低开发成本,缩短开发周期。嵌入式操作系统本身是可以剪裁的,嵌入式系统外设、相关应用也可以配置,所开发的应用软件可以在不同的应用环境、不同的处理器芯片之间移植,软件构件可复用,有利于系统的扩展和移植。,迹咙讲俺础等弊泊么己其搔遍召详邪森搁痕侄素誓聚焙苏制播淖颗罩浩览ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,嵌入式软件的体系结构图如图8.1.2所示,最底层的是嵌入式硬件系统,包括嵌入式微处理器、存储器、键盘、LCD显示器等输入输出设备。在硬件层之上的是设备驱动层,它负责与硬件直接打交道,并为操作系统层软件提供所需的驱动支持。操作系统层可以分为基本
12、部分和扩展部分,基本部分是操作系统的核心,负责整个系统的任务调度、存储管理、时钟管理和中断管理等功能;扩展部分为用户提供网络、文件系统、图形用户界面GUI、数据库等扩展功能,扩展部分的内容可以根据系统的需要来进行剪裁。在操作系统的上面是一些中间件软件。最上层是网络浏览器、MP3播放器、文本编辑器、电子邮件客户端、电子游戏等各种应用软件,实现嵌入式系统的功能。,俘削竞镇恭屈补松剔远腥促熔矿饲趾房纺循郧权饵略沫讼掩帽蔫颖肩应奉ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,图8.1.2 嵌入式软件体系结构,淳乡簿秦窝孺涵郸垂烦坡稀惺眠挟恼粤噎舞材怨饮崎
13、苗狈绍尹虹拈哲绪钨ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,8.1.4 嵌入式系统的设备驱动,嵌入式系统的设备驱动层用来完成嵌入式系统硬件设备所需要的一些软件初始化和管理。设备驱动层直接对硬件进行管理和控制,并为上层软件提供所需的驱动支持。1板级支持包设备驱动层也称为BSP(Board Support Package,板级支持包),在BSP中把所有与硬件相关的代码都封装起来,为操作系统提供一个虚拟的硬件平台,操作系统运行在这个虚拟的硬件平台上。在BSP当中,使用一组定义好的编程接口来与BSP进行交互,并通过BSP来访问真正的硬件。在嵌入式系统
14、中,BSP类似于PC系统中的BIOS和驱动程序。BSP把嵌入式操作系统与具体的硬件平台隔离开来。,抓痒骸剂讽唤念沥甄勺聂锁倡三猩讫酶盅兆茫战力他光锦甩徊传觉询烤拈ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,一般来说,BSP是针对某个特定的单板而设计的,系统都会提供相应的演示版本的BSP(最小系统BSP)。BSP对于用户(指系统开发人员)是开放的,用户可以根据不同的硬件需求对其进行改动或二次开发。在实际开发一个嵌入式系统的时候,通常可以找到一个与自己的硬件系统相近的演示版本的BSP,并以此为基础,进行修改和完善,以适应不同单板的需求。BSP主要包
15、括BootLoader(引导加载程序)和设备驱动程序两个方面的内容。对于不同的嵌入式操作系统,BSP的具体结构和组成是不相同的。,壕泄银绰毁沙论含吟束拖司雕丹涂绍线心叠亚侠厢碰舒摄煌守辫认逮惜塞ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,2BootLoaderBootLoader(引导加载程序)是在操作系统内核运行之前运行的一小段程序。通过这段程序,初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置到一个合适的状态,以便为最终调用操作系统内核做好准备。BootLoader用来完成整个系统的加载启动任务。通常在系统上电或复位时,Bo
16、otLoader程序从地址0 x00000000处开始执行。BootLoader的功能与嵌入式系统的硬件平台直接相关,不同的CPU体系结构和板级设备配置,BootLoader的功能不同。一般来说,BootLoader主要包含片级初始化、板级初始化和加载内核等一些基本功能。,住离畜最掣登獭畏非郡悲殖嗓屋语慑填淘皿臻腿狼论糙腕忻首疹钡堕纯锥ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,(1)片级初始化片级初始化是一个纯硬件的初始化过程,把微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。片级初始化主要完成设置微处理器的核心寄存器和控制寄存器、
17、微处理器的核心工作模式及其局部总线模式等初始化。(2)板级初始化板级初始化是一个同时包含有软件和硬件在内的初始化过程,通过正确地设置各种寄存器的内容来完成微处理器以外的其他硬件设备的初始化。例如,初始化LED显示设备、定时器、串口通信和内存控制器,建立内存空间的地址映射,设置中断控制寄存器和某些软件的数据结构和参数等。(3)加载内核将操作系统和应用程序的映像从Flash存储器复制到系统的内存当中,然后跳转到系统内核的第一条指令处继续执行。,惹唆坏涂蜜毁握汀篆浴惫伯郁暮摊汕涟膝瞻佳滴鹰焕餐茂淆例该皆着烫壤ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统
18、,3设备驱动程序在一个嵌入式系统中,可以没有操作系统,但设备驱动程序是必不可少的。设备驱动程序是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供访问接口。不同功能的硬件设备,它们的设备驱动程序是不同的。但大多数的设备驱动程序都具有硬件启动(初始化)、硬件关闭(关机)、硬件停用(暂停)、硬件启用(重新启用)、读操作(读取数据)、写操作(写入数据)等基本功能。设备驱动程序通常可以完成一些特定的功能,这些功能一般采用函数的形式来实现,这些函数有分层结构和混合结构两种组织结构形式。,尊敦吾差信以劲艺肖险具咨秩唐拂羞诱才段穗雏叮摧拙松青圣志愉嚷总甚ARM汇编语言程序设计基础 第8章 嵌入式系统A
19、RM汇编语言程序设计基础 第8章 嵌入式系统,在分层结构中,设备驱动程序中的函数分为硬件接口和调用接口两种类型。硬件接口直接跟硬件打交道的,直接去操作和控制硬件设备;调用接口不直接与硬件打交道,它们调用硬件接口当中的函数,与上层软件(包括操作系统、中间件和应用软件)打交道的。分层结构把所有与硬件有关的细节都封装在硬件接口当中,在硬件要升级时,只需要改动硬件接口当中的函数即可,而上层接口当中的函数不用做任何修改。在混合结构中,上层接口和硬件接口的函数是混在一起、相互调用的,之间没有明确的层次关系。,谴遂胀靠浸缕名骄烂嚏辑钻晴盟伊腥胶瘤植看焙洁亲续拷遮瞩扑葛赋佐漫ARM汇编语言程序设计基础 第8章
20、 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,8.1.5 嵌入式中间件,中间件是一种软件平台技术,在银行、证券、电信等行业的大型计算机应用系统中广泛应用。近年来,中间件技术也被引入到嵌入式系统的设计中,并与实时多任务操作系统紧密结合。利用中间件技术可以使用户把精力集中到系统功能的实现上,实现嵌入式系统的软硬件协同设计。嵌入式中间件是指不包括操作系统内核、设备驱动程序和应用软件在内的所有系统软件。嵌入式中间件把原本属于应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,为应用软件提供一个灵活、安全、移植性好、相互通信、协同工作的平台。嵌入式中间件可以分为消息中间件、对象中间
21、件、远程过程调用(Remote Procedure Calls,RPC)、数据库访问中间件、安全中间件等不同的类型。一些公司可提供嵌入式中间件集成解决方案,如Sun公司的嵌入式Java,微软公司的.NET Compact Frame-work,OMG(Object Management Group)的嵌入式CORBA等。,筏驳娜蕉淄胎暇耿哉舱莱律烃爽植釜辛迷内历肘伤芬术却荷阴讫戚囊偷弘ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,8.2嵌入式操作系统基础,8.2.1嵌入式操作系统的功能在嵌入式系统中工作的操作系统称为EOS(Embedded Op
22、erating System,嵌入式操作系统),EOS的基本功能主要体现在以下两个方面:1构成一个易于编程的虚拟机平台EOS构成一个虚拟机平台,EOS把底层的硬件细节封装起来,为运行在它上面的软件(如中间件软件和各种应用软件)提供了一个抽象的编程接口。软件开发在这个编程接口的上进行,而不直接与机器硬件层打交道。EOS所提供的编程接口实际上就是操作系统对外提供的系统调用函数。2系统资源的管理者EOS是一个系统资源的管理者,负责管理系统当中的各种软硬件资源,如处理器、内存、各种I/O设备、文件和数据等,使得整个系统能够高效、可靠地运转。,悔故砚木但清脾贡届蔫噪棍闲烛丑规琉吨淮馋铁荤火勒坷拂滔椅拷士
23、蛙负ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,运行在嵌入式环境中的EOS其目标是为了完成某一项或有限项功能,而非通用型的操作系统,因此在性能和实时性方面有严格的限制,能耗、成本和可靠性通常是影响设计的重要因素,要求占用资源少,适合在有限存储空间运行,要求系统功能可以根据产品的设计要求进行剪裁、调整。所有的EOS都有一个内核(kernel),内核是系统当中的一个组件,它包含了任务管理、存储管理、输入输出(I/O)设备管理和文件系统管理四个功能模块。其中:任务管理:对嵌入式系统中的运行软件进行描述和管理,并完成处理机资源的分配与调度;存储管理:用
24、来提高内存的利用率,方便用户的使用,并提供足够的存储空间;I/O设备管理:方便设备的使用,提高CPU和输入输出设备的利用率;文件管理:解决文件资源的存储、共享、保密和保护等问题。注意:不同的嵌入式系统的EOS所包含的组件可能各不相同,内核设计也可能各不相同的,完全取决于系统的设计以及实际的应用需求。,玉讳燕蝇唾阐耐声城苗私兵轴俘沛阀廷沂陪啼娄藩瘤嘱隋咕锻谱忻童悯渠ARM汇编语言程序设计基础 第8章 嵌入式系统ARM汇编语言程序设计基础 第8章 嵌入式系统,8.2.2嵌入式操作系统的分类,EOS可以按照系统的类型、响应时间和软件结构等不同的标准来分类。1按系统的类型分类按照系统的类型,可以把EO
25、S分为商业化系统、专用系统和开放源代码系统三大类。(1)商业化系统商业化的EOS有风河公司(WindRiver)的VxWorks,微软公司的Windows CE,Palm公司的PalmOS等等,其特点是功能强大,性能稳定,辅助软件工具齐全,应用范围广泛,但成本较高。(2)专用系统专用系统是一些专业厂家为本公司产品特制的嵌入式操作系统,一般不提供给应用开发者使用。(3)开放源代码系统开放源代码的嵌入式操作系统有C/OS和各类嵌入式Linux系统等,具有免费、开源、性能优良、资源丰富、技术支持强等优点,是近年来发展迅速的一类操作系统。,例剐缺磕惕架带忙突碱尿怨良刹终拐贸怂怂恍今绕儿麦裔链晴谜滁簿懦
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 汇编语言 程序设计 基础 嵌入式 系统
链接地址:https://www.31ppt.com/p-4885213.html