第二章-嵌入式系统开发流程_第1页
第二章-嵌入式系统开发流程_第2页
第二章-嵌入式系统开发流程_第3页
第二章-嵌入式系统开发流程_第4页
第二章-嵌入式系统开发流程_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,嵌入式系统信息电子工程学院单世铎,2,第二章嵌入式系统开发流程,3,2.1嵌入式软件开发的特点,嵌入式系统与通用计算机系统的差别:人机交互界面有限的功能时间关键性和稳定性,4,嵌入式软件开发的特点:需要交叉开发环境:交叉开发环境是指实现编译、链接和调试应用程序代码的环境。与运行应用程序的环境不同,它分散在有通信连接的宿主机与目标机环境之中。宿主机(Host)是一台通用计算机,一般是PC机。它通过串口或网络连接与目标机通信。目标机(Target)可以是嵌入式应用软件的实际运行环境,也可以是能替代实际环境的仿真系统。,5,嵌入式软件开发的特点:引入任务设计方法需要固化程序软件开发难度大嵌入式应用软件对实时性、稳定性、可靠性、抗干扰性等性能的要求都比通用软件的要求更为严格和苛刻。,6,2.2嵌入式系统开发的流程,嵌入式软件的开发流程与通用软件的开发流程大同小异,但开发所使用的设计方法具有嵌入式开发的特点。整个开发流程可分为:需求分析阶段设计阶段生成代码阶段固化阶段,7,需求分析阶段,嵌入式系统应用需求中最为突出的是注重应用的时效性,需求分析阶段的主要任务是:(1)对问题的识别和分析对用户提出的问题进行抽象识别用以产生以下的需求:功能需求、性能需求、环境需求、可靠性需求、安全需求、用户界面需求、资源使用需求、软件成本与开发进度需求。,8,需求分析阶段,(2)制订规格说明文档经过对问题的识别,产生了系统各方面的需求。通过对规格的说明,文档得以清晰、准确地描述。这些说明文档包括需求规格说明书和初级的用户手册等。,9,需求分析阶段,(3)需求评审需求评审作为系统进入下一阶段前最后的需求分析复查手段,在需求分析的最后阶段对各项需求进行评估,以保证软件需求的质量。需求评审的内容包括正确性、无歧义性、安全性、可验证性、一致性、可理解性、可修改性、可追踪性等多个方面。,10,设计阶段,系统的设计阶段包括系统设计、任务设计和任务的详细设计。由于嵌入式系统中任务的并发性,嵌入式软件开发中引入了DARTS(DesignApproachforReal-TimeSystem)DARTS设计方法:是结构化分析/结构化设计的扩展。它给出划分任务的方法,并提供定义任务间接口的机制。DARTS设计方法的设计步骤如下:(1)数据流分析(2)划分任务(3)定义任务间的接口,11,生成代码阶段,生成代码阶段需要完成的工作包括代码编程、交叉编译和链接、交叉调试和测试等。,12,代码编程,生成代码阶段,在嵌入式系统的开发过程中,一般采用的方法是先在通用PC上编程,然后通过交叉编译链接,将程序做成目标平台上可以运行的二进制代码格式。最后将程序下载到目标平台上的特定位置,在目标板上启动运行这段二进制代码。,13,生成代码阶段,交叉编译和链接,嵌入式软件开发编码完成后,要进行编译和链接以生成可执行代码。但是,在开发过程中设计人员普遍使用Intel的x86系列CPU的计算机进行开发,而目标环境的处理芯片却是多种多样的,如ARM,DSP,PowerPC,DragonBall系列等,这就要求开发机上的编译器能支持交叉编译。嵌入式集成开发环境都支持交叉编译、链接,如WindRiver公司的Tornado以及GNU套件等。交叉编译链接生成两种类型的可执行文件:调试用的可执行文件和固化的可执行文件。,14,生成代码阶段,交叉调试,交叉调试,又叫远程调试,具有以下特点:调试器和被调试的程序运行在不同的机器上。调试器运行在PC或工作站上,而被调试程序运行在各式的专用目标机上;调试器通过某种通信方式与目标机建立联系,如串口、并口、网络、JTAG或者专用的通信方式;,15,在目标机上一般具有某种调试代理,这种代理能与调试器一起配合完成对目标机上运行程序的调试。这种代理可以是某种能支持调试的硬件,也可以是某种软件;目标机可以是一种仿真机。通过在宿主机上运行目标机的仿真软件,仿真一台目标机,使整个调试工作只在一台计算机上进行。嵌入式系统开发的测试与通用软件的测试相似,分为单元测试和系统集成测试。,生成代码阶段,测试,16,固化阶段,嵌入式系统的应用软件是针对特定的实际专业领域的,基于相应的嵌入式硬件平台,并能完成用户预期任务的计算机软件。,嵌入式软件的特点如下:(1)软件要求固态化存储。(2)软件代码要求高质量、高可靠性。(3)系统软件的高实时性是基本要求。(4)多任务实时操作系统成为嵌入式应用软件的必需。,17,总结:嵌入式软件开发的要点,嵌入式应用软件高度依赖目标应用的软硬件环境,软件的部分任务功能函数由汇编语言完成,具有高度的不可移植性。为了保证实时性能,使用效率高和速度快的汇编语言是不可避免的。尽可能提高嵌入式应用软件的可移植性方法:(1)尽量用高级语言开发,少用汇编语言(2)局域化不可移植部分(3)提高软件的可重用性,18,2.3嵌入式系统的调试,嵌入式系统的调试过程:,19,2.3嵌入式系统的调试,嵌入式系统的调试方法:1源程序模拟器方式2监控器方式3仿真器方式,20,源程序模拟器方式,源程序模拟器(Simulator)是在PC机上,通过软件手段模拟执行为某种嵌入式处理器编写的源程序的测试工具。注意:模拟器的功能毕竟是以一种处理器模拟另一种处理器的运行,在指令执行时间、中断响应、定时器等方面很有可能与实际处理器有相当大的差别。另外,它无法仿真嵌入式系统在应用系统中的实际执行情况。比如:ARM公司的ARMulator模拟器,21,监控器方式,监控器(Monitor)调试方式需要目标机与宿主机协调。首先,在宿主机和目标机之间通过串口、以太口等建立物理连接,然后在宿主机上运行调试器,目标机运行监控程序和被调试程序,从而建立宿主机与目标机的逻辑连接。宿主机通过调试器与目标机的监控器建立通信连接,它们相互间的通信遵循远程调试协议。比如ARM公司的Angel。,22,仿真器方式,仿真器调试方式是在微处理器的内部嵌入额外的控制模块。当特定的触发条件满足时,系统将进入某种特殊状态。在这种状态下,被调试的程序暂时停止运行,宿主机的调试器通过微处理器外部特设的通信口访问各种寄存器、存储器资源,并执行相应的调试指令。在宿主机的通信端口和目标板调试通信接口之间,通信接口的引脚信号可能存在差异,因此在这两者之间往往可以通过一块信号转换电路板连接。一般高档的微处理器都带JTAG(JointTestActionGroup,联合测试行动组)接口,它是一种边界扫描标准,只需5根引脚就可以实现在线仿真的功能。,23,2.4板级支持包,由于嵌入式系统中采用微处理器微控制器的多样性,嵌入式操作系统的可移植性显得更加重要。所以有些嵌入式操作系统的内核明确分成两层,上层一般称为“内核”,而低层则称为“硬件抽象层”,底层的缩写是HAL,也有的厂商(如VxWorks的提供者WindRiver公司)把硬件抽象层称为BSP,即板级支持包(BoardSupportPackage)。板级支持包是操作系统与目标应用硬件环境的中间接口,它是软件包中具有平台依赖性的那一部分。板级支持包的主要功能包括两部分:在系统启动时,对硬件进行初始化为驱动程序提供访问硬件的手段,24,小结,嵌入式系统开发的代码生成是在PC机上完成,但由于嵌入式目标平台的不同,就要求在开发机上的编译器能支持交叉编译(例如GCC)、链接,然后将程序的代码下载到目标机上指定位置,然后还要交叉调试。调试器还是运行在宿主机的操作系统上,被调试的程序是放在目标机上,通过串口或网络接口相连接。主要流程为:编写-交叉编译、链接-定位和下载-调试。嵌入式系统采用这种开发模式主要是自身的特点决定的。,25,第3章ARM体系结构(一),26,主要内容,3.1ARM体系结构简介3.2ARM微处理器的工作状态3.3ARM体系结构的存储器格式3.4指令长度及数据类型3.5处理器模式3.6寄存器组织3.7异常(Exceptions),27,3.1ARM体系结构简介,ARM公司1990年成立于英国剑桥,是专门从事基于RISC技术芯片设计开发的公司,主要出售芯片设计技术的授权,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,使得ARM技术获得了更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场,更具有竞争力。,28,3.1ARM体系结构简介,采用RISC架构的ARM微处理器一般具有如下特点:支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件。Thumb指令集比通常的8位和16位CISC/RISC处理器具有更好的代码密度;指令执行采用3级流水线/5级流水线技术;带有指令Cache和数据Cache,大量使用寄存器,指令执行速度更快。大多数数据操作都在寄存器中完成。寻址方式灵活简单,执行效率高。指令长度固定(在ARM状态下是32位,在Thumb状态下是16位);支持大端格式和小端格式两种方法存储字数据;,29,支持Byte(字节,8位)、Halfword(半字,16位)和Word(字,32位)三种数据类型。支持用户、快中断、中断、管理、中止、系统和未定义等7种处理器模式,除了用户模式外,其余的均为特权模式;处理器芯片上都嵌入了在线仿真ICE-RT逻辑,便于通过JTAG来仿真调试ARM体系结构芯片,可以避免使用昂贵的在线仿真器。具有片上总线AMBA。,1ARM体系结构简介,30,采用存储器映像I/O的方式,即把I/O端口地址作为特殊的存储器地址;体积小、低成本、高性能。ARM微处理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、以及Intel的StrongARM、XScale和其它厂商基于ARM体系结构的处理器,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。一个典型的ARM体系结构方框图如图所示,包含有32位ALU、31个32位通用寄存器及6位状态寄存器、328位乘法器3232位桶形移位寄存器、指令译码及控制逻辑、指令流水线和数据地址寄存器等。,3.1ARM体系结构简介,31,图3.1.1ARM体系结构方框图,32,1ALUARM体系结构的ALU由两个操作数锁存器、法器、逻辑功能、结果及零检测逻辑构成。2桶形移位寄存器ARM采用了3232位桶形移位寄存器,左移右移n位、环移n位和算术右移n位等都可以一次完成,可以有效的减少移位的延迟时间。3高速乘法器ARM为了提高运算速度,采用两位乘法的方法,2位乘法可根据乘数的2位来实现“加移位”运算。,3.1ARM体系结构简介,33,4浮点部件在ARM体系结构中,浮点部件作为选件可根据需要选用5控制器ARM的控制器采用硬接线的可编程逻辑阵列PLA,其输入端有14根、输出端有40根,分散控制Load/Store多路、乘法器、协处理器以及地址、寄存器ALU和移位器。6寄存器ARM内含37个寄存器,包括31个通用32位寄存器和6个状态寄存器。,3.1ARM体系结构简介,34,3.1ARM体系结构简介,ARM微处理器支持两种指令集:ARM指令集:ARM指令为32位的长度Thumb指令集:Thumb指令为16位长度Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省3040以上的存储空间,同时具备32位代码的所有优点。,35,3.2ARM微处理器的工作状态,ARM微处理器的工作状态有两种:ARM状态,此时处理器执行32位的、字对齐的ARM指令;Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。ARM微处理器在开始执行代码时,应该处于ARM状态,同时中断程序的入口代码也必须是ARM状态。,36,3.3ARM体系结构的存储器格式,ARM体系结构所支持的最大寻址空间为4GB(232字节)ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式,37,大端格式,在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,38,小端格式,与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节,39,3.4指令长度及数据类型,ARM微处理器的指令长度可以是32位(在ARM状态下),也可以为16位(在Thumb状态下)。ARM微处理器中支持字节(8位,char)、半字(16位,short)、字(32位,int)三种数据类型。字需要4字节对齐(地址的低两位为0)、半字需要2字节对齐(地址的最低位为0),40,3.5处理器模式,1.用户模式(usr):ARM处理器正常的程序执行状态;2.快速中断模式(fiq)用于高速数据传输或通道处理;3.外部中断模式(irq):用于通用的中断处理;4.管理模式(svc):操作系统使用的保护模式;5.数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护;6.系统模式(sys):运行具有特权的操作系统任务;7.未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。,41,处理器模式,大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(PrivilegedModes)。特权模式中除去用户模式和系统模式以外的5种模式又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。,42,处理器模式切换,处理器模式可以通过软件进行切换,也可以通过外部中断或者异常处理过程进行切换。当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式下都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器不被破坏。,43,系统模式并不是通过异常进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存器组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时任务状态不被破坏。,44,3.6寄存器组织,37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14R0、程序计数器PC、一个或两个状态寄存器都是可访问的。,45,ARM状态下的寄存器组织(1),通用寄存器:通用寄存器包括R0R15,可以分为三类:未分组寄存器R0R7分组寄存器R8R14程序计数器PC(R15),46,ARM状态下的寄存器组织(2),47,未分组寄存器R0R7,在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊用途。在中断或异常处理进行运行模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏,这一点在进行程序设计时应引起注意。,48,分组寄存器R8R12,每次所访问的物理寄存器与处理器当前的运行模式有关R8R12:每个寄存器对应两个不同的物理寄存器当使用fiq模式时,访问寄存器R8_fiqR12_fiq;当使用除fiq模式以外的其他模式时,访问寄存器R8_usrR12_usr。,49,分组寄存器R13R14,R13、R14:每个寄存器对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式,采用以下的记号来区分不同的物理寄存器:,R13_,R14_,mode为以下几种之一:usr、fiq、irq、svc、abt、und。,50,堆栈指针R13,R13在ARM指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。由于处理器的每种运行模式均有自己独立的物理寄存器R13,在初始化部分,都要初始化每种模式下的R13,这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复。,51,子程序连接寄存器R14,子程序连接寄存器或连接寄存器LR。当执行BL子程序调用指令时,可以从R14中得到R15(程序计数器PC)的备份。在每一种运行模式下,都可用R14保存子程序的返回地址,当用BL或BLX指令调用子程序时,将PC的当前值拷贝给R14,执行完子程序后,又将R14的值拷贝回PC,即可完成子程序的调用返回。BLSUB1SUB1:STMFDSP!,LR/*将R14存入堆栈*/LDMFDSP!,PC/*完成子程序返回*/,52,程序计数器PC(R15),AR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论