410 likes | 662 Views
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 开发工具、评估板等
E N D
2003年珠海ARM嵌入式开发/软件测试技术研讨会 基于ARM的 嵌入式开发技术 作者:皮永辉 深圳旋极历通科技有限公司 2003-9
内容提要 • 关于ARM • 嵌入式系统的开发流程 • 基于ARM的开发技术与环境 • ARM的SOC开发
关于ARM • ARM=Advanced RISC Machine • RISC 的典型代表 • 32位处理器技术 • 嵌入式领域的主力军 • ARM的产品 • ARM处理器内核,以IP的形式提供给IC生产厂家 • 硬核 • 软核 • ARM开发工具、SOC开发工具、评估板等 • ARM公司不生产芯片
ARM的特点(1) • ARM微处理器的主要特点 • 系列化:ARM7, ARM9, ARM10, … • 独特的指令系统 • 32位架构,定长。 • 32位ARM指令 • 16位Thumb指令 • 大部分为单周期指令 • 条件执行 • Load/Store • 流水线结构 • ARM7:3级流水线 • ARM9:5级流水线 • 高性能、低功耗
ARM的特点(2) • ARM微处理器的主要特点 • 支持JTAG调试 • 7种工作模式 • User : 用户模式,非特权 • FIQ : 快速中断 • IRQ : 普通中断 • Supervisor管理模式 • Abort : 存取异常模式 • Undef : 未定义指令模式 • System : 系统模式 • 2种工作状态 • ARM • Thumb • 支持ARM/Thumb的交互工作
关于嵌入式系统 • 典型的嵌入式系统的一般由以下几部分组成 • 嵌入式微处理器 • 外围硬件设备 • 嵌入式操作系统 • 应用程序 • 嵌入式系统的典型特征 • 专用 • 硬件 • 软件
选择开发方案 设计与调试 测试 产品 嵌入式系统的开发——流程 选择主要芯片 确定产品需求 确定编程语言 选择开发环境 RTOS的使用 测试工具与其他辅助设备
软件测试 编译器 链接器 调试器 操作系统 评估板 逻辑分析仪 边界扫描测试仪 仿真器 编程器 嵌入式系统的开发——设计与调试 IDE 生产 设计
编译器 链接器 定位器 开发环境 • 什么是嵌入式开发环境: • 编译器/汇编器/链接定位器 • 调试器/仿真器 • 主机(Host)及其工作平台 • 实时操作系统(可选) • 目标评估系统(可选) • 测试工具(软件/硬件/协议等,可选) • 其他辅助设备(可选) 源程序 目标文件 • 典型的开发环境 可重定位程序 可执行文件
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
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
嵌入式系统的调试(1) • 嵌入式系统的调试有四种基本方法: • 模拟调试(Simulator) • 软件调试(Debugger) • BDM/JTAG调试(BDM/JTAG Debugger) • 全仿真调试(Emulator)
嵌入式系统的调试(2) • 模拟调试(Simulator) 调试工具和待调试的嵌入式软件都在主机上运行,由主机提供一个模拟的目标运行环境,可以进行语法和逻辑上的调试。 • 优点:简单方便,不需要目标板,成本低 • 缺点:功能非常有限,无法实时调试 大多数调试工具都提供Simulator功能
嵌入式系统的调试(3) • 软件调试(Debugger) 主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,待调试软件下载到目标板上运行。 这种方式的先决条件是要在Host和Target之间建立起通信联系(目标板上称为监控程序Monitor) • 优点:纯软件,价格较低,简单,软件调试能力较强 • 缺点:需要事先烧制Monitor(往往需多次试验才能成功)且目标板工作正常,功能有限,特别是硬件调试能力较差。 PC 串口 Monitor Target
嵌入式系统的调试(4) • BDM/JTAG调试 这种方式有一个硬件调试体。该硬件调试体与目标板通过BDM、JTAG等调试接口相连,与主机通过串口、并口、网口或USB口相连。待调试软件通过BDM/JTAG调试器下载到目标板上运行。 • 优点:方便、简单,无须制作Monitor,软硬件均可调试 • 缺点:需要目标板,且目标板工作基本正常(至少MCU工作正常),仅适用于有调试接口的芯片 PC 接口 Target BDM/JTAG Debugger
嵌入式系统的调试(5) • 全仿真调试(Emulator) 这种方式用仿真器完全取代目标板上的MCU,因而目标系统对开发者来说完全是透明的、可控的。仿真器与目标板通过仿真头连接,与主机有串口、并口、网口或USB口等连接方式。由于仿真器自成体系,调试时既可以连接目标板,也可以不连接目标板(Stand alone)。 • 优点:功能非常强大,软硬件均可做到完全实时在线调试 • 缺点:价格昂贵。
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
Trace32-ICD的特点(1) • 德国Lauterbach公司出品 • TRACE32-ICD是基于集成在片内的调试和跟踪逻辑的在线调试工具。这些接口包括: • BDM:背景调试模式,主要由Motorola使用 • JTAG:边界扫描,用于测试和调试 • OCDS:在片调试支持,由Infineon公司定义 • NEXUS: IEEE-ISTO 5001标准所定义的调试接口 • 模块化结构,用户可根据自己的需求配置 • 通用性仿真工具,只需更换仿真头, 就可以调试其他CPU
Trace32-ICD的特点(2) • 强大、灵活的调试手段 • 丰富的断点类型 • 强大的运行控制 • 统一的命令集,支持批处理 • 高效灵活的脚本语言Practice • 支持RTOS调试 • 支持FLASH在线编程 • 支持嵌入式软件测试 • 支持多CPU调试和多内核调试 • 个性化界面,用户可自行设计菜单、按键等
其它ARM调试工具(1) • Multi-ICE • ARM公司出品 • 与ADS配套使用 • 支持不同的ARM内核 • 另有Multi-trace模块可选
其它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调试 • 开放的体系结构,兼容性好
评估板的好处 • 目标评估系统(Evaluation board) • 芯片厂家在推销自己的MCU时,常常会推出针对该芯片的评估板。评估板将MCU所的功能充分展示出来(可能还带有部分软件),用户可直接使用,并借鉴其设计方法。 • 使用评估板可大大加快硬件开发和软件调试的进程。 • 目前旋极公司提供ARM7、ARM9和DragonBall的评估板
选择实时操作系统RTOS • 对于复杂的嵌入式系统应考虑使用RTOS • RTOS的作用: • 提供API(应用编程接口):操作系统为应用程序员提供可供调用的API,允许程序员致力于应用程序的开发 • 简化系统设计:实时嵌入式系统比非实时系统更难设计. 使用实时多任务的内核能简化系统设计,可将复杂的应用程序分为几个不同的任务,由内核去对他们协调处理 • 旋极公司提供如下支持ARM的实时操作系统: • Nucleus • OSE
Application RTOS Nucleus BSP Board Hardware RTOS简介(1) • Nucleus • 美国ATI公司出品 • 微内核技术 • 模块化结构,可随意裁剪 • 提供完全源代码 • 无产品版税(Royalties Free) • 无BSP开发,可移植性强 • 丰富的开发手段 • 支持绝大多数嵌入式微处理器, 包括ARM
RTOS简介(2) • OSE • 瑞典Enea公司出品 • 支持复杂的分布式系统 • 极强的处理能力 • 强大的纠错能力 • 支持软硬件热交换 • 严格的安全认证 • 强大的第三方支持 • 先进的消息传递机制 • 富有特色的链接管理(Link Handler) • 支持绝大多数嵌入式微处理器,包括ARM
嵌入式系统的测试(1) • 嵌入式技术的发展催生了很多新技术,新技术带来了一系列新的问题: • 新市场 • 缩小产品尺寸 • 增加产品功能 • 提高时钟速率 • 缩短产品上市时间 • 新技术 • IC设计越来越复杂 • 引脚封装小型化 • 引脚数量急剧增加 • PCB走线越来越细 • 可编程部件在线编程
嵌入式系统的测试(2) • 传统测试/调试方法 • “老革命遇上新问题” • PCB两面焊,埋入式过孔和走线 • 缺少物理入口,象SMT和BGA引脚测试非常困难 • 测试夹具难以测试原型组件 • 小尺寸PCB无法预留测试点 • 许多CPLD和FLASH无法使 • 用插座编程 • 每选一新的可编程器件,工 • 程师就要学新的编程方法
嵌入式系统的测试(3) • 新技术,新方法 • 使用边界扫描测试技术可以有效地解决这些问题! • 边界扫描来源于IEEE Std 1149.1,是由联合测试行动小组(Joint Test Action Group)制定的一种测试逻辑,所以又称JTAG标准。 • JTAG作为集成电路的一部分,可以完成以下功能: 测试器件间的相互连线; 测试集成电路本身; 在线编程CPLD、FPGA、FLASH; JTAG仿真调试 • Corelis公司的ScanPlus边界扫描测试仪
嵌入式系统的测试(4) ScanPLUS——边界扫描测试仪 • 美国Corelis出品 • 由硬件和软件两部分组成
嵌入式系统的测试(5) ScanPLUS的组成——软件 • ScanPlus Runner:检测执行、控制JTAG 控制器 进行检测工作的控制部分; • ScanPlus TPG: 产生线路检测文件; • ScanPlus ADO: 高级诊断部分; • ScanPlus Debugger:可以对线路板故障部分进 行在线细化、逐步和定制的测试,以找 出故障原因,并提供详细的真值表; • ScanPlus Merge: 可以进行整合测试,可以对母 板及其带有的多块子板进行整合测试, 以节省测试时间和手续;
嵌入式系统的测试(6) ScanPLUS的组成——软件 • ScanPlus Runner:可以进行CPLD的在线编程; • ScanPlus Flash Generator:Flash在线编程数据文件 的产生部分; • ScanPlus Flash Programmer:Flash在线编程执行部分
嵌入式系统的测试(7) ScanPLUS的组成——硬件 JTAG Controller:JTAG 控制器 • 功能:将ScanPlus Runner生成的检测序列按照与计算机的连接协议转化成JTAG检测数据链,通过JTAG连接线传送给目标板。
嵌入式系统的测试(8) • ScanPLUS——工作原理
SOC与ARM(1) • SOC——概念 • SOC=System On Chip,即在片系统,或系统集成芯片 • SOC就是在单个芯片上实现一个复杂的系统。这一技术的得以实现主要是由于现今EDA 技术的推广,VLSI设计的普及化,以及新的设计理念(基于IP的设计)的诞生。
SOC与ARM(2) • SOC——实现 • 通常是采用基于IP的设计方法 • 用户首先定义出整个应用系统 • 通过调用IP或现成的 VLSI 设计库中的器件,在计算机中模拟实现 • 仿真调试 • 将设计图交给半导体工厂制作样品。 • 除个别无法集成的器件外,整个嵌入式系统的大部分均可集成到一块,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。 • 仿真调试方法 • 计算机模拟 • 真实的SOC开发调试环境
SOC与ARM(3) • SOC——优势 • 可以大幅缩小整个系统的体积; • 减少外设与微处理器之间的电路板连线,避免信号传递时的噪声干扰,从而大大减小硬件开发的难度; • 由于SOC一般采用的都是低电压内核,可以大大降低系统的功耗; • 由于SOC的实现通常是采用基于IP的模块化设计思想,因此大大降低了软件开发的难度;
SOC与ARM(4) • Integrator——简介 • Integrator是ARM公司提供的用于SOC(System On Chip)设计的集成开发环境 • 将ARM公司的各种ARM内核及其相关技术通过灵活而又高效的开发平台提供给用户。 • 提高设计效率 • 缩短上市时间 • 降低开发成本 • Integrator将软件和硬件IP集成在一起 • ARM不仅提供内核IP,也提供各种外设IP(PrimeCell)及其相关驱动 • 使用可编程器件 • 方便得到与最终系统极为相近的早期原型
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
SOC与ARM(6) • Integrator——优势 • 真实的早期原型 • 高效灵活的设计平台 • 硬件实体 • IP • 现场设计与修改 • 在线调试、试用、测试 • IM—Interface Module • 缩短开发周期、降低成本 • 提高设计的可信度 • 减少样片生产 • 降低商业风险