ARM嵌入式系统开发综述

上传人:m**** 文档编号:161635749 上传时间:2022-10-14 格式:DOCX 页数:26 大小:44.86KB
返回 下载 相关 举报
ARM嵌入式系统开发综述_第1页
第1页 / 共26页
ARM嵌入式系统开发综述_第2页
第2页 / 共26页
ARM嵌入式系统开发综述_第3页
第3页 / 共26页
点击查看更多>>
资源描述
视听研究所主页:论坛:所有资料均收集于各网站。我们会第一时间若您认为有关资料不适合公开,请联系 删除。感谢各位网友的无私奉献和支持!加密时间:2008-2-1获取更多权威电子书请登录ARM嵌入式系统开发综述ARM开发工程师入门宝典获取更多权威电子书请登录、/ 、刖言嵌入式系统通常是以具体应用为中心,以处理器为核心且面向实际应用的软硬 件系统,其硬件是整个嵌入式系统运行的基础和平台,提供了软件运行所需的物理 平台和通信接口;而嵌入式系统的软件一般包括操作系统和应用软件,它们是整个 系统的控制核心,提供人机交互的信息等。所以,嵌入式系统的开发通常包括硬件 和软件两部分的开发,硬件部分主要包括选择合适的 MCU 或者 SOC 器件、存储 器类型、通讯接口及I/O、电源及其他的辅助设备等;软件部分主要涉及OS porting和应用程序的开发等,与此同时,软件中断调试和实时调试、代码的优 化、可移植性/可重用以及软件固化等也是嵌入式软件开发的关键。嵌入式系统开发的每一个环节都可以独立地展开进行详细的阐述,而本文的出 发点主要是为嵌入式开发的初学者者提供一个流程参考。因为对于初学者在面对一 个嵌入式开发项目的时候,往往面临着诸多困难,如选择什么样的开发平台?什么 样的器件类型?在进行编译时怎样实现代码优化?开发工具该如何选择和使用?在 进行程序调试时应该注意那些问题以及选择什么样的嵌入式OS等等。希望通过本 文,能帮助初学者了解有关 ARM 嵌入式系统开发流程。获取更多权威电子书 请登录目录前 言 21 嵌入式开发平台 41.1 ARM的开发平台:41.2器件选型72 工具选择113 编译和连接133.1 RVCT的优化级别与优化方向163.2 Multifile compilation213.3调试224 操作系统 234.1 哪里可以得到 os 软件包 (Open Source and LinuxKernel 254.2 安装镜像264.3 交叉编译26总结27获取更多权威电子书 请登录1 嵌入式开发平台通常嵌入式开发的平台主要包括基于SoC或MCU开发板,板上提供常用的 外设、接口和其他功能模块,开发者一般根据自己的应用需要选择适合自己板级开 发平台。在这样的平台上开发者可以进行硬件的扩展,操作系统移植和应用软件的 开发、调试及固化,并最终形成自己的产品推向市场。但是基于该平台的软件开发 工作往往需要等到硬件平台完成后才能开展,这显然不利于缩短TTM(Time to Market),同时调试的过程也是需要反复迭代和修改设计的过程,因此硬件方案的 变动在所难免。因此在系统方案没有最终定型前,急于搭建硬件平台不仅费时费 力,而且也会造成系统开发成本的提高。因此在进行方案设计的时候,利用CPU 或者其他外设的模型进行早期的评估是非常必要的。1.1 ARM的开发平台:! ARMulator 仿真平台这是一套最基础的ARM指令集仿真器,内嵌于ADS和RVDS中,是每一位 ARM开发者的很好的起点。ARMulator可以模拟执行开发人员编写的C或汇编程 序,支持源代码调试,帮助开发者确定代码编写的正确性。另一方面, ARMulator 还能大致统计出,诸如:代码执行周期数,Cache命中率,存储器访问等利于我们 优化代码的信息。但ARMulator是基于CPU的模拟,缺点在于比较难于模拟整个 芯片系统的行为。! RealView Integrator-CP 平台获取更多权威电子书 请登录RealView Integrator-CP 平台(RealView Integrator Compact Platform )可以整合 Core Module。 Core Module FPGA 还整合了 ARM PrimeCell 系列周边器件和内存控 制器,包括LCD,MMC卡,音频解码,以及客户自己开发AHB接口器件。! Versatile PB/AB 平台Versatile Platform Baseboard (Versatile PB)是一个可以开发软硬件的 PCB 平 台,可以用LogicTile,AnalyzerTile进行扩展,用来连接用户开发的器件,逻辑分 析仪等。而 Versatile Application Baseboard (Versatile AB)主要区别是硬件扩展功 能有限,因而主要用来进行软件应用开发。! Emulation Baseboard(EB )EB平台有一块相对大的FPGA (Xilinx Virtex2 XC2V6000)可以放下用户设 计的周边器件,EB可以通过CoreTile和LogicTile进行扩展,使用户做原型验证 更加方便。! ESL 虚拟平台ARM ESL虚拟平台利用SystemC模型构建整个SoC系统,可以基于两种模型 构建:时钟精确型(CA )和时钟近似型(CX ), CA模型提供了和实际硬件时钟 节拍一直的精确度,利用ESL SoC Designer工具在ESL CA模型构建虚拟获取更多权威电子书 请登录仿真平台上,SoC硬件工程师利用ESL工具提供的强大的诸如Core运行状态 监视、Bus Profiling、Cache工作状态和Memory Mapping等可视化插件对系统性能 观测和分析,定位系统性能的瓶颈,实现硬件的性能优化和功能划分。此外,对于嵌入式软件开发工程师而言,ESL虚拟平台带来的最大好处是让 软件开发在更早的阶段开展,而不必等到在硬件平台上进行此工作。这样以来软硬 件开发工作可以并行提高,缩短产品上市时间,软硬件的协同开发还可以尽早发现 系统bug,降低开发风险和成本。同时该虚拟平台还提供了 ARM软件开发调试工 具接口同步进行软件调试,在ESL虚拟平台上实现软硬件的协同仿真,可以实现 优化软件的目的。从图1看传统流程中容易引起反复的环节,而对引入ESL的开发流程,可 将诸如驱动开发调试等,提前放置到虚拟开发平台上进行,实现系统设计的优化、缩短开发周期等。而且仿真环境所能提供的调试手段,是FPGA平台所无法 比拟的。图1传统和引入ESL工具的SoC开发流程获取更多权威电子书请登录! RTSMRTSM (实时系统模型)是对整个芯片系统在指令集层面上的仿真,它能提供 快速、准确的指令仿真,以及与RealView Debugger的无缝连接。大型应用程序的 开发可以使用RTSM模拟技术来完成。RTSM模拟包括LCD显示器、键盘和鼠标 等外设的仿真。不到5s,就可以利用PC在ARM处理器上对OS的启动过程进行 模拟,用户可以在ARM提供的RTSM上进行快速的软件仿真。这是OEM在开发 软件系统时成本最低的方法。想象一下,芯片公司不用等到芯片生产出来,也不用 把缓慢的FPGA板交给方案厂商或OEM ;只需要将整个芯片的模型交付,下游厂 家就可以尽早尽快地将软件方案开发完毕。最终产品几乎可以从芯片生产出来就准 备上市。1.2 器件选型器件的选择归根结底是为嵌入式系统选择合适的处理器芯片。ARM处理器是 最常见的嵌入式处理器之一,它以低功耗、低成本和高性能而深受业界的青睐。而 且ARM是目前产业中资源最为广泛的嵌入式处理器,基于广大的ARM合作伙伴 计划,开发者可以在这个联盟里寻求到各种自己意想不到的帮助。从图 2给出了常 见的ARM处理器的架构和支持的操作系统。目前在业内广为人知的ARM处理器 主要有ARM7系列和ARM9系列,同时为了关注今后嵌入式系统的发展,也有必 要了解一下最新的ARM11和ARM Cotex系列处理器。获取更多权威电子书 请登录图2 ARM体系结构ARM7系列ARM7TDMI是ARM7系列中使用最广泛的,它是从最早实现32位地址空间 编程模式的ARM6内核发展而来的,并增加了 64位乘法指令,支持片上调试、16 位Thumb指令集和EmbeddedICE观察点硬件。ARM7TDMI属于ARM v4体系结 构,采用冯诺伊曼结构,3级流水处理,平均0.9DMIPs/Mhz性能。不过 ARM7TDMI 没有 MMU (Memory Management Unit)和 Cache,所以仅支持那些 不需要MMU和Cahce的小型实时操作系统,如VxWorks、uC/OS-II和uLinux等 RTOS。其他的ARM7系列内核还有ARM720T和ARM7E-S等。ARM9系列ARM9TDMI相比ARM7TDMI,将流水级数提高到5级从而增加了处理器的获取更多权威电子书 请登录时钟频率,并使用指令和数据存储器分开的哈佛结构以改善 CPI 和提高处理 器性能,平均可达l.lDMIPs/Mhz,但是ARM9TDMI仍属于ARM v4T体系结构。 在 ARM9TDMI 基础上又有 ARM920T 、ARM940T 和 ARM922T ,其中 ARM940T 增加了 MPU (Memory Protect Unit)和 Cache ; ARM920T 和 ARM922T 加入了 MMU、Cache和ETM9 (方便进行CPU实时trace ),从而更好的支持象Linux 和 WinCE 这样的多线程、多任务操作系统。ARM9E 系列ARM9E系列属于ARM v5TE,在ARM9TDMI的基础上增加了 DSP扩展指 令,是可综合内核,主要有ARM968E-S、ARM966E-S、ARM946E-S和ARM926EJ-S (v5TEJ指令体系,增加了 Java指令扩展),其中ARM926EJ-S 是最具代表性的。通过DSP和Java的指令扩展,可获得70%的DSP处理能力和 8x的Java处理性能提升。另外分开的指令和数据Cache结构进一步提升了软件性 能;指令和数据TCM (Tightly Couple Memory :紧耦合存储器)接口支持零等待 访问存储器;双AMBA AHB总线接口等。ARM926EJ-S可达250Mhz以上的处理 速度,很好地支持Symbian OS、Linux、Windows CE和Palm OS等主流操作系 统。ARMll 系列ARM11 系列主要有 ARM1136、ARM1156、ARM1176 和 ARM11 MP-Core 等,它们都是v6体系结构,相比v5系列增加了 SIMD多媒体指令,获得1.75x多 媒体处理能力的提升。另外,除了 ARM1136外,其他的处理器都支持AMBA 3.0- AXI总线。ARM11系列内核最高的处理速度可达500Mhz以上(其中90nm获取更多权威电子书 请登录工艺下,ARM1176可达到750Mhz )以及600DMIPS的性能,请参考和图3相关描述。图3 ARM11系列内核基于ARMv6架构的ARM11系列处理器是根据下一代的消费类电子、无线设 备、网络应用和汽车电子产品等需求而制定的。其的媒体处理能力和低功耗特点使 它特别适合于无线和消费类电子产品;其高数据吞吐量和高性能的结合非常适合网 络处理应用;另外,在实时性能和浮点处理等方面ARM11可以满足汽车电子应用 的需求。ARM Cotex 系列Cortex系列是ARM公司目前最新内核系列,属于v7架构,主要有Cortex-A8、Cortex-R4、Cortex-M3 和 Cortex-M1 等处理器,其中 A8 是面向高 性能的应用处理器,最高可达1Ghz的处理速度,更好的支持多媒体及其他高性能 要求,最高可达2000DMIPS,- R4主要面向嵌入式实时应用领域(Real-Time),7 级流水结构,相对于上代ARM1156内核,R4在性能、功耗和面积(PPA : Performance, Power and Area)取得更好的平衡,1.5DMIPS/Mhz 和高于 400Mhz 的处理速度。而M3主要是面向低成本和高性能的MCU应用领域,相比 ARM7TDMI,M3面积更小,功耗更低,性能更高。Cortex-M3处理器的核心获取更多权威电子书请登录是基于哈佛架构的 3级流水线内核,该内核集成了分支预测,单周期乘法,硬 件除法等众多功能强大的特性,使其在 Dhrystone benchmark 上具有出色的表现(1.25 DMIPS/MHz)。根据 Dhrystone benchmark 的测评结果,采用新的 Thumb-2 指令集架构的 Cortex-M3 处理器,与执行 Thumb 指令的ARM7TDMI-S 处理器相比,每兆赫的效率提高了 70%,与执行ARM指令 的 ARM7TDMI-S 处理器相比,效率提高了 35%。目前已经有 Cortex 系列内嵌的产品问世,如 TI 公司推出的基于 Cortex-A8 内 核的OMAP3430, TI、ST和Luminary也推出了基于Cortex-M3内核的低成本高 性能32位 MCU ,更多详情请登陆这些公司的主页查询。2 工具选择根据开发目标平台的不同,ARM提供不同的工具解决方案。MDK-ARMRealView Microcontroller Development Kit(MDK 支持基于 ARM7,ARM9, Cortex-M3 微控制处理器,例如 Atmel , Freescale , Luminary ,NXP,OKI,Samsung,Sharp,ST,TI等厂家的产品。MDK提供工业标准的编 译工具和强大的调试支持。MDK是专为MCU的用户开发嵌入式软件而设计的一 套开发工具。包括根据器件定制的调试仿真支持,丰富的项目模版,固件示例以及 为内存优化的RTOS库。MDK上手容易,功能强大,适合微控制器应用程序开 发。RVDS获取更多权威电子书 请登录正如前面所介绍RVDS是专为SOC , FPGA以及ASIC用户开发复杂嵌入式 应用程序或者和操作系统平台组件接口而设计的开发工具。RVDS支持器件设计, 支持多核调试,支持基于所有arm和Cortex系列CPU的程序开发。RVDS还可以和第三方软件进行很好的连 接。图 4 RVDS 和 RV-MDK如上图表示:MDK主要是为终端客户提供价格低廉,功能强大的开发工具 集成了 RealView编译工具,Keil uVision开发环境,支持基于ARM7,ARM9,Cortex-Ml,Cortex-M3产品的仿真,提供非常高效的RTOSKernel,除此,提供的Real-Time库还有TCP/IP网络套件,Flash文件系统,USB器件接口,CAN总线接口等,方便终端用户进行应用开发。因此对于MDK用户来说,他们得到的就是可以对 MCU 进行仿真和调试,容易使用又没有冗余的 功能,关键是价格实惠,而且用户可以先试用再购买。对于芯片设计公司以及相关解决方案提供商来说,需要的是更加强大的工具, 可以进行多核调试,需要更加先进的调试和分析功能,可以支持多种操作系获取更多权威电子书 请登录统,可以进行IP整合开发,可以结合ESL工具进行架构评估,系统软硬件划 分等,那么选择RVDS可以提供完整解决方案。3 编译和连接ARM RealView 编译工具已经发展了 16年,一直致力于为客户提供最好的编译器。RVDS是ARM公司继SDT与ADS1.2之后主推的新一代开发工具,目前最 高版本是3.1。它由RealView编译器(RVCT )、RealView汇编器(armasm )、 RealView 连接器( armlinker ),以及 RealView 调试器( RVDebugger )三部分组成。RVDS对代码密度的提升、代码执行速度的提高,都可以由ARM开发工具自 动实现,而不需要软件开发人员花费过多的时间手动优化高级语言代码。这是 RVDS 的优势所在。先前版本中的编译器armcc,tcc,armcpp,tcpp已经整合成一个编译器 armcc,可以将标准的C或C+语言源程序编译成32位ARM指令代码或者16位 Thumb 指令代码或者 Thumb-2 指令代码。编译器输出的ELF格式的目标文件,包含调试信息。除此之外,编译器可以 输出所生成的汇编语言列表文件RVDS的编译器根据最新的ARM架构进行特别的优化,针对每个ARM架构 都提供最好的代码执行性能,最优的代码密度。可以根据需要选择调试信息级别, 以及不同的代码优化方向和优化级别。RVCT 中 C 和 RogueWaveC+库包括获取更多权威电子书 请登录!完整ISO标准C语言库标准 C 语言函数集, C 语言库需要的支持函数以及在 Semihosted 执行环境中 需要的目标相关的函数。ARM C语言库结构使用户很容易定义目标相关函数,以适应特定的目标环 境。!浮点函数库使用ARM在IEEE754标准(二进制浮点算法)上实现的浮点环境。! RogueWaveC+库RogueWaveC+库包含标准C+函数,编译器需要的支持函数。各种源文件经过ARM编译器编译后生成ELF格式的目标文件。这些目标文 件和相应的C/C+运行时库经过ARM连接器处理后,生成ELF格式映像文件。 ARM连接器可以去除使用不到的代码段和函数,这样可以减少内存的使用。 ARM连接器可以将不同的指令代码和数据代码放置到不同的内存地址范围。( 通常在嵌入式系统中,指令和数据代码会固化在非易失性存储器中(ROM或 Flash ),可以从这些地方上电启动。从运行速度方面考虑,部分指令和数据代码会在启动后搬运到易失性存储器(RAM中,因此连接器可以使用一些方法机制来配置调度。这种分散装载(scatterloading )的机制可以让把不同的指令和数据分散的放到 不同的地址,而且这些地址在系统启动和系统运行可以是不同的映射。获取更多权威电子书 请登录详细的地址分配可以是用参数来指定,或者用一个描述文件来作为连接器的参 数。使用描述文件会使维护起来非常简单,而且如果要改变地址分配,不需要把整 个项目完全重新来做,只要把项目中需要的目标重新连接即可。一个 scatterloading 文件的示例:LOAD_FLASH 0x04000000 0x80000 ; 启动地址和长度EXE_FLASH 0x04000000 0x80000init.o (Init, +First ;* (+RO ;32bitRAM 0x0000 0x2000vectors.o (Vect, +First ;int_handler.o (+RO16bitRAM 0x2000 0x80000* (+RW,+ZI ;获取更多权威电子书 请登录! 本文件定义了启动区域和三个执行区域。在大括号外面定义了启动区域(LOAD_FLASH),里面三个定义了执行区域(EXEC_FLASH,32bitRAM,16bitRAM。! 为了提高运行速度,异常向量(在 vectors.s )和异常句柄(在int_handler.c)被重新放置到32bitRAM的零地址开始的地方。! 可以读写的变量被复制到 16bitRAM 的 0x2000 地址开始的地方。!零初始化的数据和可读写数据放在16bitRAM内。! 其他不需要搬运的代码只需要还放在 Flash 里就好。3.1 RVCT的优化级别与优化方向提到RVCT就不能不提armcc的四个优化级别和两个编译选项,-01、-02、-03、-O4,以及-Otime、-Ospace。-Ospace与-Otime负责给编译器提供代码优化的大方向,告知编译器编译任务 的主要目标是代码密度(-Ospace )还是代码性能(-Otime )。而-01、-02、- 03、-04则分别代表4种逐次递进的不同优化级别。OSpace 还是 OTime ?显然代码密度与代码执行速度在很多情况下是一对矛盾。以下面的代码为例。 例1中左右两段代码可以完成相同的任务,但是左边的有较高的代码密度,右边的 则有较高的执行速度。因为当 expr = 0时,标志循环结束时,右边的代码可以顺序 执行下去;而左边代码必须先跳转至循环体首部判断 expr 的值,随获取更多权威电子书 请登录后再跳转道循环体尾,继续执行下一条指令。例 1 代码速度与尺寸的对比while (expr if (expr do dobody; body; 那么我们什么时候使用Otime什么时候使用Ospace呢? Otime与Ospace需要 开发人员根据系统实际需求来决定,最好的情况是在两者之间找到一个合适的平衡 点,而不是单纯的追求速度或者代码尺寸的缩小。即,将不同的代码模块根据其特 性分别使用不同的编译选项。此外,RVCT编译器支持很多非常有用的编译选项,如-no_inline (取消所有 代码的内联函数)、-split_ldm (限制LDM/STM指令的最大操作寄存器数目)、- -split_sections (将每个函数,而不是源文件,作为一个编译单元进行操作)等等。编译器的所有这一切都可以严格根据开发者的要求,帮助开发人员得到系统真 正需要的优化过了的代码。03还是02 ? while (expr;获取更多权威电子书 请登录老的开发工具,如ADS1.2中,只有3种递进的代码优化级别,对应3种编译 选项,即-00 (Minimum optimization)、-01 (Restricted optimization)、-02( High optimization )。使用-00编译选项时, RVCT 编译器只对代码作最基本的优化操作,编译结束 后用户得到的代码与用户手写源代码之间的差距很小,这种特性的主要作用是为了 方便用户在程序开发阶段的调试工作,避免由于优化而产生的调试屏障。此外,很 多资深软件工程师偏向于手写优化代码,在这种情况下,由于代码已经被优化过, 可以使用-00编译选项减少RVCT的工作量,节省编译链接的时间。-01 与-02则分别是相对于-00更加高级别的编译优化选项,前者提供有限的 优化;后者则会对代码进行较大程度的优化改进操作。RVDS中新增加了-03 (Maximum optimization)编译选项,它可以最大程度的 发挥RVCT编译器的优势,将代码编译成最优。03与02都是较高级别的编译优 化选项,但-03相比较于-02,主要优势有以下几点。当用户使用-03选项时:编译器会自动对代码进行髙阶标量优化。所谓的高阶标量优化就是编译器 对根据代码特点,针对循环、指针等进行髙阶优化。编译器会把尽可能多函数的编译为内联(inline)函数;Multifile compilation 功能被自动使能。对于循环与指针的髙阶优化(High-level scalar optimizations)当编译选项为-03 Otime时,RVCT会根据代码的具体情况,针对循环、获取更多权威电子书 请登录指针等部分作髙阶优化工作:循环解开(Loop unrolling)、融合(fusion )、 位置调整(interchange )、指针优化等等。以例2的函数为例。例2是一段简单的 C 循环函数,在循环中含有数组指针调用。例2CodeAvoid increment(int *restrict b, int *restrict c int i;for (i = 0; i 100; i+ci = bi + 1;CodeBvoid increment(int *b, int *cint i;int *pb, *pc;int b3, 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;仔细观察可以发现,CodeA与CodeB可以完成同样的功能,即将数组b的每 个成员加1赋值给数组c对应成员。但是CodeB与CodeA相比,有较高的执行速 度。主要体现在以下几点:循环100次变成了循环50次(loop unrolling),减少了跳转次数;数组变成了指针,减少每次计算数组偏移量的指令;微调了不同代码操作的执行顺序,减少了流水线 stall 的情况;循环从+循环变成了循环。这样可以使用ARM指令的条件位,为 每次循环减少了一条判断指令。很多程序员就是这样,通过这种手写不同的 C 代码,再实现相同任务的情况 下,提高了代码执行效率。在RVDS中,使用-03-Otime编译选项,RVCT会自动帮助程序员进行这些 髙阶标量优化,即,RVCT会直接将CodeA优化成以前由CodeB才能得到的汇编 代码。虽然优化之后函数的代码尺寸大于原先的函数,但是执行速度却有大获取更多权威电子书 请登录大的提高,经过统计,使用 EEMBC benchmarking, -O3 编译选项编译得到的最终代码平 均性能相对于-01可以有10%的提升,而总体代码尺寸只增加了 1%。3.2 Multifile compilation按照传统的编译方式,我们先把各个C或C+文件单独编译成.obj文件,再将 这些目标文件链接在一起。考虑到虽然在编译单独的C或C+文件时,编译器会 充分发挥它的优化特性;但此时,编译器无法关注到大量的C或C+文件接口之 间可以优化的部分。所以在传统的编译结果里,还有许多优化的余地。如何才能让 编译器同时关注和编译所有的源代码呢?Multifile compilation 是 RVDS 一个较新的特性,它可以帮助开发人员将所有的 源文件作为一个compilation unit进行编译,并最终生成一个大的目标文件(如图3 中的file1.o )。Mutifile compilation给软件开发人员带来的直接优势有以下几点:增加inline的可能性。由于inline只能发生在一个compilation unit中,所以在没有使用 mutifile compilation 时, inline 只能发生在一个源文件范围内。Multifile Compilation 将一个 compilation unit 扩大到了所有源文件的范围上,所以 直接增加了 inline发生的几率。增加了基地址与函数间优化的可能性。同inline 样,所有的基地址与函 数间的优化也必须在一个compilation unit中,随着conpilation unit的扩大这种优化 的可能性也增加了。获取更多权威电子书 请登录减少了 scatter file 的复杂性。图 3 Mutifile compilation 工作原理3.3 调试由前面的介绍已经知道 RealView Debugger(RVD ) 是 RVDS 的重要组件之 一。RealView Debugger可以更好的帮助客户在复杂SoC设计中方便直观的调试软 硬件。! 方便协调的开发软硬件RVD可以和RealView SoC Designer 一起调试,这样软硬件开发人员可以更早 的进行合作开发,而且双方都是使用各自熟悉的工具,这样可以有效地缩短开发周 期。! 单核或多核调试RVD使用同步机制进行多核调试,使用RVD在一个处理器上设置的断点,可 以停止整个系统,这样可以观测复杂的多核系统的各种关键状态信息。nnmnilnnrr mlminnilVirfilel ofileZ.ofiles.o-_rrnnnnil1le1.0获取更多权威电子书请登录!调试操作系统和中间件RVD支持调试业内各种流行的操作系统,正如操作系统一章所述,RVD可以 直观的观测操作系统的执行文本和各种资源。!调试跟踪,性能评估RVD可以对基于ARM处理器的设计进行非插入式的实时地捕捉数据/指令和 显示,从而实现调试,跟踪以及性能评估。目前业内其他的调试工具还不能达到有 如RVD这样出色的性能。RVD可以对RealView ESL对系统模型进行调试,也可 以使用RealView ICE以及RealView Trace对真实的硬件系统进行调试跟踪和性能 评估。!调试目标设备无论是开发一个新的软硬件架构,一个操作系统还是一个应用程序,RVD可 以连接到SoC模型,指令集仿真模型,实时系统模型或者真实的硬件处理器来帮 助完成开发。如此广泛的支持,使得RVD在整个开发周期中成为一个不可或缺的 得力的开发工具。4 操作系统随着高端电子消费类产品的广泛普及,实时嵌入式操作系统使用越来越广泛。 而基于ARM的嵌入式操作系统在各个领域都得到了广泛的应用,利用ARM系列 产品的强大功能可以完成各种应用程序的开发。ARM对操作系统以及系统开发执行环境提供最广泛的选择,客户可以根据需 要来选择最适应市场要求的基于ARM的嵌入式操作系统。可供选择的嵌入式获取更多权威电子书 请登录操作系统有几十种,使用较多的有Linux,WinCE,Palm,Symbian等等。采用 WinCE更多的是OEM,以及按需进行特定的嵌入式器件开发的,例如GPS导航 设备。采用Palm操作系统的厂家有联想三星索尼,他们的出货量都非常巨大。 Symbian操作系统是先进的全球公开工业标准操作系统,基于Symbian操作系统的 手机有:BenQ, DoCoMo, Motorola,Nokia, Panasonic,三星,索尼爱立信 等。Linux是源代码开放的操作系统,可以运行在包括ARM等多种主流处理器架 构上。由于有一大批的工程师在开发开放源代码以及相关开发工具,Linux可以更 方便快捷的进行移植。以 Linux 为例,选择基于 ARM 的 Linux ,可以得到更多的开发源代码的应 用,可以利用ARM处理器的高性能开发出更广阔的网络和无线应用,ARM的 Jazelle技术带来Linux平台下Java程序更好的性能表现。ARM公司的系列开发工 具和开发板,以及各种开发论坛的可利用信息带来更快的产品上市时间。获取更多权威电子书请登录 4.1哪里可以得到os软件包 (Open Source and Linux Kernel Development Architecture & Platforms Silicon Partners www.kernel.org Linux Vendors etc. 图 5 ARM 网站上可以下载到基于 RealView Itegrator 和 RealView Versatile 平台 的 Linux Kernel 镜像文件,补丁以及实用工 具。我们都知道Linux是需要进行虚拟地址管理的,因此需要处理器整合有 MMU。并不是所有的处理器都整合有MMU,因此可以在不具备MMU的处理器 上运行的修改过的 Linux 又叫做 uClinux,uClinux 同样可以从 ARM 网站上下载。可以以基于 ARM926 的 Linux 开发为例,浏览一下整个开发流程:需要的相关软 件:! Boot Loader : U-Boot。!预编译的Linux kenel,包括源文件和镜像文件。硬 件工程师必读攻略如何通过仿真有效提高数模混合设计性能(上 25 / 28获取更多权威电子书 请登录 ! 配置文件。 ! 文件系统以及预 编译的实用工具和应用软件。 首先可以从 下载 U-Boot 和 Linux 的镜像文件, 相关开发平台有 RealView Integrator-CP 平台, Versatile PB/AB 平台, EB 平台。 4.2安装镜像可以使用与主板相连的调试器,通过JTAG运行控制设备(如ARM RealView ICE单元)将映像安装到闪存中。以PB926EJ-S为例,使用从调试器运 行主板随附的BootMonitor.axf程序来编写映像。Flash菜单提供一些编写ELF或 二进制映像的选项。RealView Versatile系列还提供一个闪存编程实用工具,即“网 络闪存实用工具”(NFU)。该程序可以通过以太网连接将映像编写到闪存中。使 用U-Boot完成对闪存中的镜像引导。可以通过U-Boot完成对Linux的一些设置 以及将一些环境保存到闪存中。Linux Kernel可以从www.kernel.org上得到。4.3 交叉编译主机系统上必需安装ARM交叉编译工具链来生成Linux内核或应用程 序。(系统中需安装 Glibc library 2.3或更高版本)。 可从 或 GCC CVS 主存储库下载用于构建 硬件工程师必读攻略如何通过仿真有效提高数模混合设计性能(上 26 / 28获取更多权威电子书请登录 GCC工具的源文件。该网站还 提供讨论组,供用户讨论ARM GNU工具的相关技术问题开发人员可以从 下载用于构建GCC工具的源文件。该网站还提供讨论组, 供用户讨论arm GNU工具的相关技术问题。arm-elf生成与任何操作系统无关的 平坦或独立二进制文件。arm-elf会选择ELF支持,其大部分代码与arm-linux共 享。arm-none-linux-gnueabi 是 Linux 所需的目标,它生成 Linux/ARM 的 ELF 支 持。ARM RealView开发工具总结本文概略的介绍了 ARM公司的开发工具,如 何选择您需要的器件,从一个SoC设计者或者软件开发者的角度如何选择开发工具,RealView开发工具中的编译工具、连接工具以及调试工具。简单描述了开发 操作系统以及相关应用程序 的步骤。 无论是硬件系统开发还是软件开发,调试都 是最重要也是需要时间最多的环 节,软硬件开发人员的沟通也是缩短产品上市时 间的关键。强大的 RealView Debugger 成为不同的开发团队之间沟通最好媒介。 RealView 开发工具使得调 试环境保持一致, 软硬件开发人员更加协调。而后续开 发人员或者第三方开发者 可以更好继承这一调试环境,包括操作系统以及应用程 序库,配以 RealView 系 列工具的支持,可以更迅速的完成新的设计。 硬件工程师 必读攻略如何通过仿真有效提高数模混合设计性能(上 27 / 28获取更多权威电子书 请登录 电子工程专辑优秀电子书 #电 子工程师必备手册(上)-GPS设计全攻略(HOT #电子工程师必备手册(下)-运 算放大器设计与应用(HOT # TD-SCDMA射频系统发射部分性能监测方法(HOT # LTC四输出负载点DC/DC “Module系统设计要点# D类音频放大器设计:概念、 原理和方法#车用电容传感器的新契机# LCDTV(欧洲机型AV输入设计# PolySwitch LVR/LVRL器件有助于家用和专业电器的电机保护# OFDM原理#视 觉人体工程学设计要点 硬件工程师必读攻略如何通过仿真有效提高数模混合设计性能(上 28 / 28
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


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

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


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