1 / 41

基于 ARM 的 嵌入式开发技术 作者:皮永辉 深圳旋极历通科技有限公司 2003-9

2003年珠海 ARM 嵌入式开发/软件测试技术研讨会. 基于 ARM 的 嵌入式开发技术 作者:皮永辉 深圳旋极历通科技有限公司 2003-9. 内容提要. 关于 ARM 嵌入式系统的开发流程 基于 ARM 的开发技术与环境 ARM 的 SOC 开发. 关于 ARM. ARM= A dvanced R ISC M achine RISC 的典型代表 32位处理器技术 嵌入式领域的主力军 ARM 的产品 ARM 处理器内核,以 IP 的形式提供给 IC 生产厂家 硬核 软核 ARM 开发工具、 SOC 开发工具、评估板等

Télécharger la présentation

基于 ARM 的 嵌入式开发技术 作者:皮永辉 深圳旋极历通科技有限公司 2003-9

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2003年珠海ARM嵌入式开发/软件测试技术研讨会 基于ARM的 嵌入式开发技术 作者:皮永辉 深圳旋极历通科技有限公司 2003-9

  2. 内容提要 • 关于ARM • 嵌入式系统的开发流程 • 基于ARM的开发技术与环境 • ARM的SOC开发

  3. 关于ARM • ARM=Advanced RISC Machine • RISC 的典型代表 • 32位处理器技术 • 嵌入式领域的主力军 • ARM的产品 • ARM处理器内核,以IP的形式提供给IC生产厂家 • 硬核 • 软核 • ARM开发工具、SOC开发工具、评估板等 • ARM公司不生产芯片

  4. ARM的特点(1) • ARM微处理器的主要特点 • 系列化:ARM7, ARM9, ARM10, … • 独特的指令系统 • 32位架构,定长。 • 32位ARM指令 • 16位Thumb指令 • 大部分为单周期指令 • 条件执行 • Load/Store • 流水线结构 • ARM7:3级流水线 • ARM9:5级流水线 • 高性能、低功耗

  5. ARM的特点(2) • ARM微处理器的主要特点 • 支持JTAG调试 • 7种工作模式 • User : 用户模式,非特权 • FIQ : 快速中断 • IRQ : 普通中断 • Supervisor管理模式 • Abort : 存取异常模式 • Undef : 未定义指令模式 • System : 系统模式 • 2种工作状态 • ARM • Thumb • 支持ARM/Thumb的交互工作

  6. ARM的应用

  7. 关于嵌入式系统 • 典型的嵌入式系统的一般由以下几部分组成 • 嵌入式微处理器 • 外围硬件设备 • 嵌入式操作系统 • 应用程序 • 嵌入式系统的典型特征 • 专用 • 硬件 • 软件

  8. 选择开发方案 设计与调试 测试 产品 嵌入式系统的开发——流程 选择主要芯片 确定产品需求 确定编程语言 选择开发环境 RTOS的使用 测试工具与其他辅助设备

  9. 软件测试 编译器 链接器 调试器 操作系统 评估板 逻辑分析仪 边界扫描测试仪 仿真器 编程器 嵌入式系统的开发——设计与调试 IDE 生产 设计

  10. 编译器 链接器 定位器 开发环境 • 什么是嵌入式开发环境: • 编译器/汇编器/链接定位器 • 调试器/仿真器 • 主机(Host)及其工作平台 • 实时操作系统(可选) • 目标评估系统(可选) • 测试工具(软件/硬件/协议等,可选) • 其他辅助设备(可选) 源程序 目标文件 • 典型的开发环境 可重定位程序 可执行文件

  11. ARM的编译器(1) • ADS1.2 • ARM公司出品 • IDE环境,包括 • ARM/Thumb汇编器:armasm • ANSI C 编译器 - armcc和 tcc • ISO / Embedded C++ 编译器 - armcpp and tcpp • 链接器 – armlink • Windows 集成开发环境 – CodeWarrior • 格式转换器 – fromelf • 库管理器 - armar • 调试器 • 模拟调试器:ARMulator • JTAG调试:AXD(与Multi-ICE配合) • 支持所有ARM内核,最新版本:RealView2.0

  12. ARM的编译器(2) • EW-ARM • 瑞典IRA公司出品 • 著名的嵌入式工具提供商,以提供编译器/协议栈/统一建模工具著称 • 主要产品:Embeded Workbench(EW)、Make APP、Visual State等 • EW-ARM:针对ARM的集成开发环境: • C/C++编译器 • C-SPY 模拟调试器 • ROM-Monitor • 多种级别代码优化方法,满足用户在速度、文件大小方面的要求 • 内建ARM特性优化器 • 支持多种断点模式 • 支持Nucleus, VxWorks等RTOS • Greenhills • GNU

  13. 嵌入式系统的调试(1) • 嵌入式系统的调试有四种基本方法: • 模拟调试(Simulator) • 软件调试(Debugger) • BDM/JTAG调试(BDM/JTAG Debugger) • 全仿真调试(Emulator)

  14. 嵌入式系统的调试(2) • 模拟调试(Simulator) 调试工具和待调试的嵌入式软件都在主机上运行,由主机提供一个模拟的目标运行环境,可以进行语法和逻辑上的调试。 • 优点:简单方便,不需要目标板,成本低 • 缺点:功能非常有限,无法实时调试 大多数调试工具都提供Simulator功能

  15. 嵌入式系统的调试(3) • 软件调试(Debugger) 主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,待调试软件下载到目标板上运行。 这种方式的先决条件是要在Host和Target之间建立起通信联系(目标板上称为监控程序Monitor) • 优点:纯软件,价格较低,简单,软件调试能力较强 • 缺点:需要事先烧制Monitor(往往需多次试验才能成功)且目标板工作正常,功能有限,特别是硬件调试能力较差。 PC 串口 Monitor Target

  16. 嵌入式系统的调试(4) • BDM/JTAG调试 这种方式有一个硬件调试体。该硬件调试体与目标板通过BDM、JTAG等调试接口相连,与主机通过串口、并口、网口或USB口相连。待调试软件通过BDM/JTAG调试器下载到目标板上运行。 • 优点:方便、简单,无须制作Monitor,软硬件均可调试 • 缺点:需要目标板,且目标板工作基本正常(至少MCU工作正常),仅适用于有调试接口的芯片 PC 接口 Target BDM/JTAG Debugger

  17. 嵌入式系统的调试(5) • 全仿真调试(Emulator) 这种方式用仿真器完全取代目标板上的MCU,因而目标系统对开发者来说完全是透明的、可控的。仿真器与目标板通过仿真头连接,与主机有串口、并口、网口或USB口等连接方式。由于仿真器自成体系,调试时既可以连接目标板,也可以不连接目标板(Stand alone)。 • 优点:功能非常强大,软硬件均可做到完全实时在线调试 • 缺点:价格昂贵。

  18. ARM的调试方式 • 模拟调试 • ADS1.2:ARMulator • Trace32:Simulator • EW-ARM:C-spy • 软件调试 • ADS1.2:Angel(串口) • JTAG调试 • ARM:Multi-ICE • Trace32-ICD for ARM • Hitex:Tanto for ARM • 全仿真调试 • Trace32-FIRE/ICE

  19. Trace32-ICD的特点(1) • 德国Lauterbach公司出品 • TRACE32-ICD是基于集成在片内的调试和跟踪逻辑的在线调试工具。这些接口包括: • BDM:背景调试模式,主要由Motorola使用 • JTAG:边界扫描,用于测试和调试 • OCDS:在片调试支持,由Infineon公司定义 • NEXUS: IEEE-ISTO 5001标准所定义的调试接口 • 模块化结构,用户可根据自己的需求配置 • 通用性仿真工具,只需更换仿真头, 就可以调试其他CPU

  20. Trace32-ICD的特点(2) • 强大、灵活的调试手段 • 丰富的断点类型 • 强大的运行控制 • 统一的命令集,支持批处理 • 高效灵活的脚本语言Practice • 支持RTOS调试 • 支持FLASH在线编程 • 支持嵌入式软件测试 • 支持多CPU调试和多内核调试 • 个性化界面,用户可自行设计菜单、按键等

  21. 其它ARM调试工具(1) • Multi-ICE • ARM公司出品 • 与ADS配套使用 • 支持不同的ARM内核 • 另有Multi-trace模块可选

  22. 其它ARM调试工具(2) • TANTO(=Test and Analysis Tool) • 德国Hitex公司出品, ARM、PowerPC等JTAG/BDM调试工具 • 模块化结构: • 主基模块TB(Tanto Base) • 端口追踪模块PT(Port Trace) • 总线链接模块BL(Bus Link) • 总线追踪模块BT(Bus Trace) • 仿真头PL(Port Link) • 主机连接方式:串口/USB/网口 • 统一的调试界面,支持C/C++,支持RTOS调试 • 开放的体系结构,兼容性好

  23. 评估板的好处 • 目标评估系统(Evaluation board) • 芯片厂家在推销自己的MCU时,常常会推出针对该芯片的评估板。评估板将MCU所的功能充分展示出来(可能还带有部分软件),用户可直接使用,并借鉴其设计方法。 • 使用评估板可大大加快硬件开发和软件调试的进程。 • 目前旋极公司提供ARM7、ARM9和DragonBall的评估板

  24. 选择实时操作系统RTOS • 对于复杂的嵌入式系统应考虑使用RTOS • RTOS的作用: • 提供API(应用编程接口):操作系统为应用程序员提供可供调用的API,允许程序员致力于应用程序的开发 • 简化系统设计:实时嵌入式系统比非实时系统更难设计. 使用实时多任务的内核能简化系统设计,可将复杂的应用程序分为几个不同的任务,由内核去对他们协调处理 • 旋极公司提供如下支持ARM的实时操作系统: • Nucleus • OSE

  25. Application RTOS Nucleus BSP Board Hardware RTOS简介(1) • Nucleus • 美国ATI公司出品 • 微内核技术 • 模块化结构,可随意裁剪 • 提供完全源代码 • 无产品版税(Royalties Free) • 无BSP开发,可移植性强 • 丰富的开发手段 • 支持绝大多数嵌入式微处理器, 包括ARM

  26. RTOS简介(2) • OSE • 瑞典Enea公司出品 • 支持复杂的分布式系统 • 极强的处理能力 • 强大的纠错能力 • 支持软硬件热交换 • 严格的安全认证 • 强大的第三方支持 • 先进的消息传递机制 • 富有特色的链接管理(Link Handler) • 支持绝大多数嵌入式微处理器,包括ARM

  27. 嵌入式系统的测试(1) • 嵌入式技术的发展催生了很多新技术,新技术带来了一系列新的问题: • 新市场 • 缩小产品尺寸 • 增加产品功能 • 提高时钟速率 • 缩短产品上市时间 • 新技术 • IC设计越来越复杂 • 引脚封装小型化 • 引脚数量急剧增加 • PCB走线越来越细 • 可编程部件在线编程

  28. 嵌入式系统的测试(2) • 传统测试/调试方法 • “老革命遇上新问题” • PCB两面焊,埋入式过孔和走线 • 缺少物理入口,象SMT和BGA引脚测试非常困难 • 测试夹具难以测试原型组件 • 小尺寸PCB无法预留测试点 • 许多CPLD和FLASH无法使 • 用插座编程 • 每选一新的可编程器件,工 • 程师就要学新的编程方法

  29. 嵌入式系统的测试(3) • 新技术,新方法 • 使用边界扫描测试技术可以有效地解决这些问题! • 边界扫描来源于IEEE Std 1149.1,是由联合测试行动小组(Joint Test Action Group)制定的一种测试逻辑,所以又称JTAG标准。 • JTAG作为集成电路的一部分,可以完成以下功能: 测试器件间的相互连线; 测试集成电路本身; 在线编程CPLD、FPGA、FLASH; JTAG仿真调试 • Corelis公司的ScanPlus边界扫描测试仪

  30. 嵌入式系统的测试(4) ScanPLUS——边界扫描测试仪 • 美国Corelis出品 • 由硬件和软件两部分组成

  31. 嵌入式系统的测试(5) ScanPLUS的组成——软件 • ScanPlus Runner:检测执行、控制JTAG 控制器 进行检测工作的控制部分; • ScanPlus TPG: 产生线路检测文件; • ScanPlus ADO: 高级诊断部分; • ScanPlus Debugger:可以对线路板故障部分进 行在线细化、逐步和定制的测试,以找 出故障原因,并提供详细的真值表; • ScanPlus Merge: 可以进行整合测试,可以对母 板及其带有的多块子板进行整合测试, 以节省测试时间和手续;

  32. 嵌入式系统的测试(6) ScanPLUS的组成——软件 • ScanPlus Runner:可以进行CPLD的在线编程; • ScanPlus Flash Generator:Flash在线编程数据文件 的产生部分; • ScanPlus Flash Programmer:Flash在线编程执行部分

  33. 嵌入式系统的测试(7) ScanPLUS的组成——硬件 JTAG Controller:JTAG 控制器 • 功能:将ScanPlus Runner生成的检测序列按照与计算机的连接协议转化成JTAG检测数据链,通过JTAG连接线传送给目标板。

  34. 嵌入式系统的测试(8) • ScanPLUS——工作原理

  35. SOC与ARM(1) • SOC——概念 • SOC=System On Chip,即在片系统,或系统集成芯片 • SOC就是在单个芯片上实现一个复杂的系统。这一技术的得以实现主要是由于现今EDA 技术的推广,VLSI设计的普及化,以及新的设计理念(基于IP的设计)的诞生。

  36. SOC与ARM(2) • SOC——实现 • 通常是采用基于IP的设计方法 • 用户首先定义出整个应用系统 • 通过调用IP或现成的 VLSI 设计库中的器件,在计算机中模拟实现 • 仿真调试 • 将设计图交给半导体工厂制作样品。 • 除个别无法集成的器件外,整个嵌入式系统的大部分均可集成到一块,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。 • 仿真调试方法 • 计算机模拟 • 真实的SOC开发调试环境

  37. SOC与ARM(3) • SOC——优势 • 可以大幅缩小整个系统的体积; • 减少外设与微处理器之间的电路板连线,避免信号传递时的噪声干扰,从而大大减小硬件开发的难度; • 由于SOC一般采用的都是低电压内核,可以大大降低系统的功耗; • 由于SOC的实现通常是采用基于IP的模块化设计思想,因此大大降低了软件开发的难度;

  38. SOC与ARM(4) • Integrator——简介 • Integrator是ARM公司提供的用于SOC(System On Chip)设计的集成开发环境 • 将ARM公司的各种ARM内核及其相关技术通过灵活而又高效的开发平台提供给用户。 • 提高设计效率 • 缩短上市时间 • 降低开发成本 • Integrator将软件和硬件IP集成在一起 • ARM不仅提供内核IP,也提供各种外设IP(PrimeCell)及其相关驱动 • 使用可编程器件 • 方便得到与最终系统极为相近的早期原型

  39. SOC与ARM(5) • Integrator——组成 • CM—Core Module • LM—Logic Module • IM—Interface Module • 板极平台:提供各模块所需的以AMBA为骨干的系统架构 • AP—ASIC Development Platform • AM—Analyzer Module • SP—CompactPCI Development Board

  40. SOC与ARM(6) • Integrator——优势 • 真实的早期原型 • 高效灵活的设计平台 • 硬件实体 • IP • 现场设计与修改 • 在线调试、试用、测试 • IM—Interface Module • 缩短开发周期、降低成本 • 提高设计的可信度 • 减少样片生产 • 降低商业风险

  41. 谢谢大家

More Related