ARM设计进阶--课件

上传人:文**** 文档编号:240605329 上传时间:2024-04-24 格式:PPT 页数:72 大小:437KB
收藏 版权申诉 举报 下载
ARM设计进阶--课件_第1页
第1页 / 共72页
ARM设计进阶--课件_第2页
第2页 / 共72页
ARM设计进阶--课件_第3页
第3页 / 共72页
资源描述:

《ARM设计进阶--课件》由会员分享,可在线阅读,更多相关《ARM设计进阶--课件(72页珍藏版)》请在装配图网上搜索。

1、ARM设计进阶1ppt课件1嵌入式开发平台通常嵌入式开发的平台主要包括基于SoC或MCU开发板,板上提供常用的外设、接口和其他功能模块,开发者一般根据自己的应用需要选择适合自己板级开发平台。在这样的平台上开发者可以进行硬件的扩展,操作系统移植和应用软件的开发、调试及固化,并最终形成自己的产品推向市场。2ppt课件但是基于该平台的软件开发工作往往需要等到硬件平台完成后才能开展,这显然不利于缩短TTM(TimetoMarket),同时调试的过程也是需要反复迭代和修改设计的过程,因此硬件方案的变动在所难免。3ppt课件因此在系统方案没有最终定型前,急于搭建硬件平台不仅费时费力,而且也会造成系统开发成

2、本的提高。因此在进行方案设计的时候,利用CPU或者其他外设的模型进行早期的评估是非常必要的。4ppt课件1.1 ARM 的开发平台:的开发平台:ARMulator仿真平台这是一套最基础的ARM指令集仿真器,内嵌于ADS和RVDS中,是每一位ARM开发者的很好的起点。ARMulator可以模拟执行开发人员编写的C或汇编程序,支持源代码调试,帮助开发者确定代码编写的正确性。5ppt课件ARMulator仿真平台另一方面,ARMulator还能大致统计出,诸如:代码执行周期数,Cache命中率,存储器访问等利于我们优化代码的信息。但ARMulator是基于CPU的模拟,缺点在于比较难于模拟整个芯片系

3、统的行为。6ppt课件RealViewIntegrator-CP平台http:/ 器件选型器件选型器件的选择归根结底是为嵌入式系统选择合适的处理器芯片。ARM处理器是最常见的嵌入式处理器之一,它以低功耗、低成本和高性能而深受业界的青睐。而且ARM是目前产业中资源最为广泛的嵌入式处理器,基于广大的ARM合作伙伴计划,开发者可以在这个联盟里寻求到各种自己意想不到的帮助。15ppt课件目前在业内广为人知的ARM处理器主要有ARM7系列和ARM9系列,同时为了关注今后嵌入式系统的发展,也有必要了解一下最新的ARM11和ARMCotex系列处理器。16ppt课件ARM7 系列系列ARM7TDMI是ARM

4、7系列中使用最广泛的,它是从最早实现32位地址空间编程模式的ARM6内核发展而来的,并增加了64位乘法指令,支持片上调试、16位Thumb指令集和EmbeddedICE观察点硬件。ARM7TDMI属于ARMv4体系结构,采用冯诺伊曼结构,3级流水处理,平均0.9DMIPs/Mhz性能。不过ARM7TDMI没有MMU(MemoryManagementUnit)和Cache,所以仅支持那些不需要MMU和Cahce的小型实时操作系统,如VxWorks、uC/OS-II和uLinux等RTOS。其他的ARM7系列内核还有ARM720T和ARM7E-S等。17ppt课件ARM9 系列系列ARM9TDMI

5、相比ARM7TDMI,将流水级数提高到5级从而增加了处理器的时钟频率,并使用指令和数据存储器分开的哈佛结构以改善CPI和提高处理器性能,平均可达1.1DMIPs/Mhz,但是ARM9TDMI仍属于ARMv4T体系结构。在ARM9TDMI基础上又有ARM920T、ARM940T和ARM922T,其中ARM940T增加了MPU(MemoryProtectUnit)和Cache;ARM920T和ARM922T加入了MMU、Cache和ETM9(方便进行CPU实时trace),从而更好的支持象Linux和WinCE这样的多线程、多任务操作系统。18ppt课件ARM9E 系列系列ARM9E系列属于ARM

6、v5TE,在ARM9TDMI的基础上增加了DSP扩展指令,是可综合内核,主要有ARM968E-S、ARM966E-S、ARM946E-S和ARM926EJ-S(v5TEJ指令体系,增加了Java指令扩展),其中ARM926EJ-S是最具代表性的。通过DSP和Java的指令扩展,可获得70的DSP处理能力和8x的Java处理性能提升。另外分开的指令和数据Cache结构进一步提升了软件性能;指令和数据TCM(TightlyCoupleMemory:紧耦合存储器)接口支持零等待访问存储器;双AMBAAHB总线接口等。ARM926EJ-S可达250Mhz以上的处理速度,很好地支持SymbianOS、L

7、inux、WindowsCE和PalmOS等主流操作系统。19ppt课件ARM11 系列系列ARM11系列主要有ARM1136、ARM1156、ARM1176和ARM11MP-Core等,它们都是v6体系结构,相比v5系列增加了SIMD多媒体指令,获得1.75x多媒体处理能力的提升。另外,除了ARM1136外,其他的处理器都支持AMBA3.0-AXI总线。ARM11系列内核最高的处理速度可达500Mhz以上(其中90nm工艺下,ARM1176可达到750Mhz)以及600DMIPS的性能20ppt课件基于ARMv6架构的ARM11系列处理器是根据下一代的消费类电子、无线设备、网络应用和汽车电子

8、产品等需求而制定的。其的媒体处理能力和低功耗特点使它特别适合于无线和消费类电子产品;其高数据吞吐量和高性能的结合非常适合网络处理应用;另外,在实时性能和浮点处理等方面ARM11可以满足汽车电子应用的需求。21ppt课件ARM Cotex 系列系列Cortex系列是ARM公司目前最新内核系列,属于v7架构,主要有Cortex-A8、Cortex-R4、Cortex-M3和Cortex-M1等处理器,其中A8是面向高性能的应用处理器,最高可达1Ghz的处理速度,更好的支持多媒体及其他高性能要求,最高可达2000DMIPS;R4主要面向嵌入式实时应用领域(Real-Time),7级流水结构,相对于上

9、代ARM1156内核,R4在性能、功耗和面积(PPA:Performance,PowerandArea)取得更好的平衡,1.5DMIPS/Mhz和高于400Mhz的处理速度。22ppt课件而M3主要是面向低成本和高性能的MCU应用领域,相比ARM7TDMI,M3面积更小,功耗更低,性能更高。Cortex-M3处理器的核心是基于哈佛架构的3级流水线内核,该内核集成了分支预测,单周期乘法,硬件除法等众多功能强大的特性,使其在Dhrystonebenchmark上具有出色的表现(1.25DMIPS/MHz)。根据Dhrystonebenchmark的测评结果,采用新的Thumb.-2指令集架构的Co

10、rtex-M3处理器,与执行Thumb指令的ARM7TDMI-S.处理器相比,每兆赫的效率提高了70%,与执行ARM指令的ARM7TDMI-S处理器相比,效率提高了35%。23ppt课件目前已经有Cortex系列内嵌的产品问世,如TI公司推出的基于Cortex-A8内核的OMAP3430,TI、ST和Luminary也推出了基于Cortex-M3内核的低成本高性能32位MCU,更多详情请登陆这些公司的主页查询。24ppt课件2 工具选择工具选择根据开发目标平台的不同,ARM提供不同的工具解决方案。25ppt课件MDK-ARMRealViewMicrocontrollerDevelopmentK

11、it(MDK)支持基于ARM7,ARM9,Cortex-M3微控制处理器,例如Atmel,Freescale,Luminary,NXP,OKI,Samsung,Sharp,ST,TI等厂家的产品。MDK提供工业标准的编译工具和强大的调试支持。MDK是专为MCU的用户开发嵌入式软件而设计的一套开发工具。包括根据器件定制的调试仿真支持,丰富的项目模版,固件示例以及为内存优化的RTOS库。MDK上手容易,功能强大,适合微控制器应用程序开发。26ppt课件RVDS正如前面所介绍RVDS是专为SOC,FPGA以及ASIC用户开发复杂嵌入式应用程序或者和操作系统平台组件接口而设计的开发工具。RVDS支持器

12、件设计,支持多核调试,支持基于所有ARM和Cortex系列CPU的程序开发。RVDS还可以和第三方软件进行很好的连接。27ppt课件MDK主要是为终端客户提供价格低廉,功能强大的开发工具。集成了RealView编译工具,KeiluVision开发环境,支持基于ARM7,ARM9,Cortex-M1,Cortex-M3产品的仿真,提供非常高效的RTOSKernel,除此,提供的Real-Time库还有TCP/IP网络套件,Flash文件系统,USB器件接口,CAN总线接口等,方便终端用户进行应用开发。因此对于MDK用户来说,他们得到的就是可以对MCU进行仿真和调试,容易使用又没有冗余的功能,关键

13、是价格实惠,而且用户可以先试用再购买。28ppt课件对于芯片设计公司以及相关解决方案提供商来说,需要的是更加强大的工具,可以进行多核调试,需要更加先进的调试和分析功能,可以支持多种操作系统,可以进行IP整合开发,可以结合ESL工具进行架构评估,系统软硬件划分等,那么选择RVDS可以提供完整解决方案。29ppt课件3 编译和连接编译和连接ARMRealView编译工具已经发展了16年,一直致力于为客户提供最好的编译器。RVDS是ARM公司继SDT与ADS1.2之后主推的新一代开发工具,目前最高版本是3.1。它由RealView编译器(RVCT)、RealView汇编器(armasm)、RealV

14、iew连接器(armlinker),以及RealView调试器(RVDebugger)三部分组成。30ppt课件RVDS对代码密度的提升、代码执行速度的提高,都可以由ARM开发工具自动实现,而不需要软件开发人员花费过多的时间手动优化高级语言代码。这是RVDS的优势所在。31ppt课件先前版本中的编译器armcc,tcc,armcpp,tcpp已经整合成一个编译器armcc,可以将标准的C或C+语言源程序编译成32位ARM指令代码或者16位Thumb指令代码或者Thumb-2指令代码。编译器输出的ELF格式的目标文件,包含调试信息。除此之外,编译器可以输出所生成的汇编语言列表文件。32ppt课件

15、RVDS的编译器根据最新的ARM架构进行特别的优化,针对每个ARM架构都提供最好的代码执行性能,最优的代码密度。可以根据需要选择调试信息级别,以及不同的代码优化方向和优化级别。33ppt课件RVCT中中C 和RogueWaveC+库包括完整ISO标准C语言库标准C语言函数集,C语言库需要的支持函数以及在Semihosted执行环境中需要的目标相关的函数。ARMC语言库结构使用户很容易定义目标相关函数,以适应特定的目标环境。34ppt课件浮点函数库使用ARM在IEEE754标准(二进制浮点算法)上实现的浮点环境。RogueWaveC+库RogueWaveC+库包含标准C+函数,编译器需要的支持函

16、数。各种源文件经过ARM编译器编译后生成ELF格式的目标文件。这些目标文件和相应的C/C+运行时库经过ARM连接器处理后,生成ELF格式映像文件。35ppt课件ARM连接器可以去除使用不到的代码段和函数,这样可以减少内存的使用。ARM连接器可以将不同的指令代码和数据代码放置到不同的内存地址范围。(http:/ RVCT 的优化级别与优化方向的优化级别与优化方向提到RVCT就不能不提ARMcc的四个优化级别和两个编译选项,-O1、-O2、-O3、-O4,以及-Otime、-Ospace。-Ospace与-Otime负责给编译器提供代码优化的大方向,告知编译器编译任务的主要目标是代码密度(-Osp

17、ace)还是代码性能(-Otime)。而-O1、-O2、-O3、-O4则分别代表4种逐次递进的不同优化级别。41ppt课件OSpace 还是还是OTime?显然代码密度与代码执行速度在很多情况下是一对矛盾。以下面的代码为例。例1中左右两段代码可以完成相同的任务,但是左边的有较高的代码密度,右边的则有较高的执行速度。因为当expr=0时,标志循环结束时,右边的代码可以顺序执行下去;而左边代码必须先跳转至循环体首部判断expr的值,随后再跳转道循环体尾,继续执行下一条指令。42ppt课件例1代码速度与尺寸的对比while(expr)if(expr)dodobody;body;while(expr)

18、;43ppt课件那么我们什么时候使用Otime什么时候使用Ospace呢?Otime与Ospace需要开发人员根据系统实际需求来决定,最好的情况是在两者之间找到一个合适的平衡点,而不是单纯的追求速度或者代码尺寸的缩小。即,将不同的代码模块根据其特性分别使用不同的编译选项。44ppt课件此外,RVCT编译器支持很多非常有用的编译选项,如-no_inline(取消所有代码的内联函数)、-split_ldm(限制LDM/STM指令的最大操作寄存器数目)、-split_sections(将每个函数,而不是源文件,作为一个编译单元进行操作)等等。45ppt课件O3 还是还是O2?老的开发工具,如ADS1

19、.2中,只有3种递进的代码优化级别,对应3种编译选项,即-O0(Minimumoptimization)、-O1(Restrictedoptimization)、-O2(Highoptimization)。使用-O0编译选项时,RVCT编译器只对代码作最基本的优化操作,编译结束后用户得到的代码与用户手写源代码之间的差距很小,这种特性的主要作用是为了方便用户在程序开发阶段的调试工作,避免由于优化而产生的调试屏障。此外,很多资深软件工程师偏向于手写优化代码,在这种情况下,由于代码已经被优化过,可以使用-O0编译选项减少RVCT的工作量,节省编译链接的时间。46ppt课件-O1与-O2则分别是相对于

20、-O0更加高级别的编译优化选项,前者提供有限的优化;后者则会对代码进行较大程度的优化改进操作。RVDS中新增加了-O3(Maximumoptimization)编译选项,它可以最大程度的发挥RVCT编译器的优势,将代码编译成最优。O3与O2都是较高级别的编译优化选项,但-O3相比较于-O2,主要优势有以下几点。47ppt课件当用户使用-O3选项时:编译器会自动对代码进行高阶标量优化。所谓的高阶标量优化就是编译器对根据代码特点,针对循环、指针等进行高阶优化。编译器会把尽可能多函数的编译为内联(inline)函数;Multifilecompilation功能被自动使能。48ppt课件对于循环与指针

21、的高阶优化对于循环与指针的高阶优化(High-level scalar optimizations)当编译选项为-O3Otime时,RVCT会根据代码的具体情况,针对循环、指针等部分作高阶优化工作:循环解开(Loopunrolling)、融合(fusion)、位置调整(interchange)、指针优化等等。以例2的函数为例。例2是一段简单的C循环函数,在循环中含有数组指针调用。49ppt课件例2CodeAvoidincrement(int*restrictb,int*restrictc)inti;for(i=0;i100;i+)ci=bi+1;CodeBvoidincrement(int*b

22、,int*c)inti;int*pb,*pc;intb3,b4;pb=b-1;pc=c-1;b3=pb1;for(i=(100/2);i!=0;i-)b4=*(pb+=2);pc1=b3+1;b3=pb1;*(pc+=2)=b4+1;50ppt课件仔细观察可以发现,CodeA与CodeB可以完成同样的功能,即将数组b的每个成员加1赋值给数组c对应成员。但是CodeB与CodeA相比,有较高的执行速度。主要体现在以下几点:51ppt课件循环100次变成了循环50次(loopunrolling),减少了跳转次数;数组变成了指针,减少每次计算数组偏移量的指令;微调了不同代码操作的执行顺序,减少了流水

23、线stall的情况;循环从循环变成了循环。这样可以使用ARM指令的条件位,为每次循环减少了一条判断指令。52ppt课件很多程序员就是这样,通过这种手写不同的C代码,再实现相同任务的情况下,提高了代码执行效率。在RVDS中,使用-O3Otime编译选项,RVCT会自动帮助程序员进行这些高阶标量优化,即,RVCT会直接将CodeA优化成以前由CodeB才能得到的汇编代码。虽然优化之后函数的代码尺寸大于原先的函数,但是执行速度却有大大的提高,经过统计,使用EEMBCbenchmarking,-O3编译选项编译得到的最终代码平均性能相对于-O1可以有10的提升,而总体代码尺寸只增加了1。53ppt课件

24、3.2Multifilecompilation按照传统的编译方式,我们先把各个C或C+文件单独编译成.obj文件,再将这些目标文件链接在一起。考虑到虽然在编译单独的C或C+文件时,编译器会充分发挥它的优化特性;但此时,编译器无法关注到大量的C或C+文件接口之间可以优化的部分。所以在传统的编译结果里,还有许多优化的余地。如何才能让编译器同时关注和编译所有的源代码呢?54ppt课件Multifilecompilation是RVDS一个较新的特性,它可以帮助开发人员将所有的源文件作为一个compilationunit进行编译,并最终生成一个大的目标文件(如图3中的file1.o)。Mutifilec

25、ompilation给软件开发人员带来的直接优势有以下几点:55ppt课件增加inline的可能性。由于inline只能发生在一个compilationunit中,所以在没有使用mutifilecompilation时,inline只能发生在一个源文件范围内。MultifileCompilation将一个compilationunit扩大到了所有源文件的范围上,所以直接增加了inline发生的几率。增加了基地址与函数间优化的可能性。同inline一样,所有的基地址与函数间的优化也必须在一个compilationunit中,随着conpilationunit的扩大这种优化的可能性也增加了。减少了

26、scatterfile的复杂性。56ppt课件3.3 调试调试由前面的介绍已经知道RealViewDebugger(RVD)是RVDS的重要组件之一。RealViewDebugger可以更好的帮助客户在复杂SoC设计中方便直观的调试软硬件。57ppt课件!方便协调的开发软硬件RVD使用同步机制进行多核调试,使用RVD在一个处理器上设置的断点,可以停止整个系统,这样可以观测复杂的多核系统的各种关键状态信息。file1.cfile2.cfile3.ccompilfile1.ofile2ofile3oDummyobjectfilesfile1.cfile2.cfile3.ccompilfile1.o

27、file2.ofile3.ocompilcompil58ppt课件!调试操作系统和中间件RVD支持调试业内各种流行的操作系统,正如操作系统一章所述,RVD可以直观的观测操作系统的执行文本和各种资源。59ppt课件!调试跟踪,性能评估RVD可以对基于ARM处理器的设计进行非插入式的实时地捕捉数据/指令和显示,从而实现调试,跟踪以及性能评估。目前业内其他的调试工具还不能达到有如RVD这样出色的性能。RVD可以对RealViewESL对系统模型进行调试,也可以使用RealViewICE以及RealViewTrace对真实的硬件系统进行调试跟踪和性能评估。60ppt课件!调试目标设备无论是开发一个新的

28、软硬件架构,一个操作系统还是一个应用程序,RVD可以连接到SoC模型,指令集仿真模型,实时系统模型或者真实的硬件处理器来帮助完成开发。如此广泛的支持,使得RVD在整个开发周期中成为一个不可或缺的得力的开发工具。61ppt课件4 操作系统操作系统随着高端电子消费类产品的广泛普及,实时嵌入式操作系统使用越来越广泛。而基于ARM的嵌入式操作系统在各个领域都得到了广泛的应用,利用ARM系列产品的强大功能可以完成各种应用程序的开发。ARM对操作系统以及系统开发执行环境提供最广泛的选择,客户可以根据需要来选择最适应市场要求的基于ARM的嵌入式操作系统。可供选择的嵌入式操作系统有几十种,使用较多的有Linu

29、x,WinCE,Palm,Symbian等等。62ppt课件采用WinCE更多的是OEM,以及按需进行特定的嵌入式器件开发的,例如GPS导航设备。采用Palm操作系统的厂家有联想三星索尼,他们的出货量都非常巨大。Symbian操作系统是先进的全球公开工业标准操作系统,基于Symbian操作系统的手机有:BenQ,DoCoMo,Motorola,Nokia,Panasonic,三星,索尼爱立信等。Linux是源代码开放的操作系统,可以运行在包括ARM等多种主流处理器架构上。由于有一大批的工程师在开发开放源代码以及相关开发工具,Linux可以更方便快捷的进行移植。63ppt课件以Linux为例,选

30、择基于ARM的Linux,可以得到更多的开发源代码的应用,可以利用ARM处理器的高性能开发出更广阔的网络和无线应用,ARM的Jazelle技术带来Linux平台下Java程序更好的性能表现。ARM公司的系列开发工具和开发板,以及各种开发论坛的可利用信息带来更快的产品上市时间。64ppt课件4.1哪里可以得到os软件包(OpenSourceandLinuxKernel)ARM网站上可以下载到基于RealViewItegrator和RealViewVersatile平台的LinuxKernel镜像文件,补丁以及实用工具。我们都知道Linux是需要进行虚拟地址管理的,因此需要处理器整合有MMU。并不

31、是所有的处理器都整合有MMU,因此可以在不具备MMU的处理器上运行的修改过的Linux又叫做uClinux,uClinux同样可以从ARM网站上下载。65ppt课件可以以基于ARM926的Linux开发为例,浏览一下整个开发流程:需要的相关软件:!BootLoader:U-Boot。!预编译的Linuxkenel,包括源文件和镜像文件。http:/www.kernel.org/LinuxVendorsArchitecture&PlatformsSiliconPartnersetc.Development!配置文件。!文件系统以及预编译的实用工具和应用软件。66ppt课件首先可以从http:/

32、安装镜像安装镜像可以使用与主板相连的调试器,通过JTAG运行控制设备(如ARMRealViewICE单元)将映像安装到闪存中。以PB926EJ-S为例,使用从调试器运行主板随附的BootMonitor.axf程序来编写映像。Flash菜单提供一些编写ELF或二进制映像的选项。RealViewVersatile系列还提供一个闪存编程实用工具,即“网络闪存实用工具”(NFU)。68ppt课件该程序可以通过以太网连接将映像编写到闪存中。使用U-Boot完成对闪存中的镜像引导。可以通过U-Boot完成对Linux的一些设置以及将一些环境保存到闪存中。LinuxKernel可以从http:/www.kernel.org/上得到。69ppt课件4.3 交叉编译交叉编译主机系统上必需安装ARM交叉编译工具链来生成Linux内核或应用程序。(系统中需安装Glibclibrary2.3或更高版本)。可从http:/ RealView开发工具开发工具72ppt课件

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!