1、ARM 集 成 开 发 环 境 介 绍 主讲人:张志刚 B 2003-09-19,Copyright 2003-15 ShenZhen Watertek S.&T. Co., Ltd.,旋极科技珠海研讨会,ADS1.2集成开发环境介绍 软件程序编译,PC模拟调试 TRACE32仿真调试器介绍 硬件板级调试 SOC设计开发环境介绍 ARM芯片设计,议 程,ADS1.2集成开发环境介绍,ADS1.2,ADS1.2简介,ADS1.2是为嵌入式ARM设计的一整套软件开发工具 从最初的软件原型到最终优化的ROM代码。 ADS1.2发布于2001的12月份 支持的主机系统 IBM compatible P
2、Cs with Windows 95, 98, 2000, ME or NT4 Sun workstations with Solaris 2.6, 2.7 or 2.8 HP workstations with HPUX 10.20, 11 Red Hat Linux 6.2 & 7.1 使用FLEXLM管理器,管理它的LICENSE 45天的评估版软件 第三方工具支持: http:/ ARM926EJ-S, ARM9EJ-S, VFPv2 支持V5TEJ体系结构 ARMulator仿真执行Java bytecode Bytecode显示 Jazelle 状态 库管理器可合并各种库(RTOS
3、,TCP/IPX通讯协议栈) 使用pragmas ,可实现出色代码和数据的布局,为可重定位的代码设置新的链接选项 编译器同时输出汇编码和目标码,ADS1.2-主要模块,ANSI C 编译器 - armcc and tcc ISO / Embedded C+ 编译器 - armcpp and tcpp ARM / Thumb 汇编器 - armasm Linker - armlink Windows 集成开发环境 - CodeWarrior Debugger - AXD armsd 可向前兼容 格式转换器 - fromelf,ADS1.2主要模块,库管理器 - armar C and C+ 库
4、指令级仿真器 - ARMulator 同时包含 ARM Firmware Suite ARM Application Library RealMonitor,ADS1.2工具的使用,命令行makefileIDE,CodeWarrior-IDE,C/C+ Browser,C/C+ Sensitive Editor,Project Manager,AXD,Docking windows,Docking toolbars,Registers,Source/ Disassembly,Memory,C / C+ 编译器 关键特性,完全支持ANSI 及其兼容 C 编译器 他属于是ISO / Embedde
5、d C+ compilers 支持所有的ARM处理器 (用 -cpu) e.g. ARM7TDMI, StrongARM, ARM9TDMI, ARM9E, ARM10, Xscale 优化的代码可以实现源码级调试: -O0 : 最佳的调试信息, 没有优化(-g) “Debug” -O1 : 大部分优化,比较好的调试信息(g) “DebugRel” -O2 : 完整优化, 有限的调试信息 “Release” 支持 ROPI / RWPI(PI-Position Independent ) 内嵌汇编C和汇编的交叉列表( -S -fs),C / C+ Compiler 数据类型,下面这些数据类型可
6、支持 char 8 bit byte short 16 bit half-word int 32 bit word long 32 bit integer float 32 bit IEEE single-precision double 64 bit IEEE double-precision pointers 32 bits long long 64 bit integerpointer,char(默认为unsigned ,可用-zc变为signed)之外,上述所有的默认值为Signed 。,ADS1.2提供的库,ANSI C库 完整的文件处理,字符,数学库等 默认情况下,使用semiho
7、sted SWIs和主机调试器通讯 比如:文件操作,I/O操作 这些库、函数包不需要为重定向而重新编译 。 适合嵌入式使用- 不必设单独的内嵌变量 自动选择正确的库 决定于你所使用的字节对齐方式,独立的位置,堆栈的检查等。 保留了run time 功能支持和浮点支持 C+ 库包含: 标准c+库(2.01版本) C+ 编译器包含run time 功能支持,ADS1.2支持的调试方式,ELF / DWARF2 image,Host running debugger,Multi-ICE,Angel,ARMulator,指令级仿真,串口方式调试,目标板上运行monitor,JTAG调试,ARMulat
8、or,针对某种ARM内核进行指令级仿真 可以完成精确的指令仿真 允许对程序的执行进行校验 可以对存储器周期进行统计 允许为指定的存储器和时钟速度,设定系统的基准 根据要求可以配置所有的ARM核来进行调试 最新的含CACHE的核 e.g ARM946E, ARM966E, ARM10 (incl VFP), XScale 支持TRACE-指令追踪 提供扩展的工具包 所有的模板用C编写,可以容易地用VISUAL C+增加新的外设模板 也可仿真IRQ 或 FIQ中断 可参考ADS 1.2 Debug Target Guide有关模板的详细说明,Multi-ICE,5 wire JTAG,调试的系统就
9、是最终系统 也存在第三方的协议转换器产品 http:/ and Multi-ICE server (can be run on separate machines),TAP,EmbeddedICE Logic-RT,ADS1.2提供的ARM应用库,应用库是一个优化的软件包:包括数学运算和应用等 由ARM体系结构专家手工制作的 优秀的ARM例子程序 完全源代码,包含说明文档和创建(BUILD)工具 在用户应用软件里使用,是免版税的 软件包包括: DSP 变换:- DCT, FFT DSP 过滤 - FIR, IIR & LMS 数学计算 快速定点乘法和除法 平方根,立方根,三角函数 有符号的饱和
10、加法 其它大量有用的函数,ADS1.2小结,完成软件程序的编译,连接定位 完成初级的软件模拟调试工作 初步验证程序的正确性 为后续板级硬件集成调试提供前提条件(Multi-ICE) ,TRACE32,TRACE32仿真调试器介绍,TRACE32,德国Lauterbach公司出品 致力于开发全能型开发工具-仿真器,调试器 成立于1979,最大最全的仿真器,调试器设计制造商 20余年嵌入式微处理器设计和开发工具设计制造经验 ONE SYSTEM FITS ALL,网址:WWW.LAUTERBACH.COM,TRACE32简介,产品有3个系列 TRACE32-ICE (In Circuit Emul
11、ator) TRACE32-ICD (In Circuit Debugger) TRACE32-FIRE(Fully Integrated RISC Emulator),TRACE32简介,模块化结构,可按用户要求裁剪,配置 多种仪器的综合体: 通用仿真器 逻辑/状态/时序分析仪 通用计数器/定时器 模式/脉冲信号源 模拟调试器 软件测试 FLASH编程 ,TRACE32简介,TRACE32支持600种以上的微处理器.以下是部分常见品牌:AMD ARM Dallas HitachiIBM Intel Mitsubishi MotorolaNational NEC Oki PhilipsSiem
12、ens Toshiba SGS-ThomsonZilog Infineon . 通用性,更换仿真模块就可调试不同的芯片,TRACE32简介,TRACE32支持60种以上的编译器,主要有:ARM Borland Tasking CAD-UL Diab-SDS Greenhills Hitech Hiware HP IAR Intel Keil Microsoft Motorola. TRACE32支持6种编程语言:ASM,C,C+,PASCAL,PL/M,ADA或MODULA2 TRACE32支持多种不同的主机操平台,主要有:Windsows3.1/95/98/NT HP-UX Solaris
13、UNIX,TRACE32简介,TRACE32支持的嵌入式操作系统超过20种,主要有Nucleus OSE Rubus CMX RTXC pSOS VxWORKS. TRACE32支持RTOS调试: RTOS专用菜单 Kernel资源显示 Task状态显示、统计评估 任务级调试 ,TRACE32简介,TRACE32支持FLASH在线编程,FLASH(厂家)主要有:AMD ATMEL FUJISTU INTE MACRONIX MICRON MITSUBISHI MOTOROLA SHARP SST ST TI TOSHIBA 既支持片外FLASH,也支持片内FLASH 支持8bit、16bit、
14、32bit总线宽度,TRACE32简介,TRACE32具有独特的嵌入式软件测试功能: 程序追踪(Trace) 程序流程,选择追踪. 函数性能测试(Performance) 运行时间,函数嵌套. 代码覆盖分析(Coverage) 代码覆盖率,变量检查(读/写)堆栈深度分析.,TRACE32简介,TRACE32系列产品具有统一的工作界面,使用同一命令集,易学易用,一通百通 个性化的可编程菜单和功能键,用户可以根据自己的需要增加或删除某些下拉菜单和工具按键,TRACE32简介,Memory 测试 硬件断点功能,TRACE32可以在FLASH或EPROM 中直接调试 支持多CPU调试 丰富的断点类型
15、支持MMU、 FPU调试 上下文追踪系统CTS(Context Tracing System) 条件执行功能(STEP、GO) ,TRACE32-ICD简介,TRACE32-ICD是基于集成在片内的调试和跟踪逻辑 (BDM、JTAG、ETM、OCDS、NEXUS)的在线调试 器(In-Circuit Debugger),TRACE32-ICD 基本结构,TRACE32-ICD典型构成 Controller Debugger Debug Port,Controller,Debugger,Debug Port,TRACE32-ICD 基本模块,控制/接口模块 PODPRT(并口) ETH(网口)
16、调试模块 DEBUG PowerDEBUG PowerDEBUG USB Trace模块 PowerNEXU ICR (RISC Trace) PowerTrace ROM 调试器(ESI),配置方案,BDM/JTAG调试器(网口),HubEthernet Interface BDM/JTAG Debugger,配置方案,BDM/JTAG调试器(USB口),BDM/JTAG Debugger with USB Interface,配置方案,BDM/JTAG调试器,带Trace模块(并口),PRT CablePodbus Parallel InterfaceBDM/JTAG Debugger R
17、ISC Trace Module,配置方案,BDM/JTAG调试器,带触发探头(并口),Printer Cable Parallel Interface BDM/JTAGDebugger Trigger Probe,TRAC32小结,完成板级硬件调试仿真 实时调试跟踪 性能分析 RTOS级调试 ,ADS+TRACE小结,ADS1.2 软件编译,模拟调试 TRACE32-ICD 硬件调试仿真 ADS1.2+ TRACE32-ICD ARM嵌入式开发的黄金组合 美国高通CDMA手机方案标配,SOC,SOC设计开发环境介绍- Integrator,典型的SOC系统架构,通用外设,Integrator
18、概述,Integrator是ARM公司提供的用于SOC(System On Chip)设计的集成开发环境 将ARM公司的测试芯片(各种ARM内核)及其相关技术通过灵活而又高效的开发平台提供给用户。 提高设计效率 缩短上市时间 降低开发成本 Integrator将软件和硬件IP集成在一起 PrimeCell及其相关驱动 使用可编程器件 方便得到与最终系统极为相近的早期原型 Integrator的内核模块(CM)支持最新的ARM内核 200-500MIPS ASB,AHB,Integrator组件,Integrator系列由各种模块和板极平台构成: CMCore Module:内核模块,提供ARM
19、处理器内核 LMLogic Module:逻辑模块,提供用户可编程逻辑单元 IMInterface Module:接口模块,提供与LM相连的电路和连结器,为开发测试、基准确定、原理认证以及用户原型设计提供方便 板极平台:提供各模块所需的以AMBA为骨干的系统架构 APASIC Development Platform:ASIC开发平台 AMAnalyzer Module:分析模块,用于与逻辑分析仪对接 SPCompactPCI Development Board,可用于WinCE开发,Integrator系列组成,内核模块(CM),CM可独立工作,也可与AP或用户设计的硬件一起工作 主要是提供
20、SOC的核心ARM内核 主要特性 ARM微处理器技术 266K或1M SSRAM,因内核不同而不同 SDRAM DIMM扩展槽,支持最多256MB空间 引出AMBA系统总线到各种平台板 时钟产生 复位控制 JTAG调试接口,可接Multi-ICE、Trace32-ICD等开发工具,内核模块(CM),CM设计有紧耦合存储系统 SSRAM和SDRAM尽可能靠近CPU,使得存储器速度得到优化 有利的影响将在存储器总线性能中得到体现 实际数字与所用的内核有关,典型值是40MHz 多处理器支持 允许多达4个CM堆接在同一个开发平台上支持多处理器应用 4个系统总线接口,分置在板子两端。方便与其他模块连结,
21、工作方式 独立工作:加上电源和Multi-ICE/Trace32-ICD,就可独立工作 可用于ARM内核性能的评估和演示 集成到Integrator环境中:连接ARM公司的开发模块和平台 与第三方开发环境集成使用:满足AMBA总线特性的第三方开发平台或ASIC原型设计系统,内核模块(CM),CM支持的ARM处理器(目前有8种) Integrator/CM7TDMI -ARM7TDMI Integrator/CM720T -ARM720T Integrator/CM740T -ARM740T Integrator/CM920T -ARM920T Integrator/CM920-ETM -ARM
22、920T and ETM9 Integrator/CM940T -ARM940T Integrator/CM946E-S -ARM946E-S and ETM9 Integrator/CM966E-S -ARM966E-S and ETM9,逻辑模块(LM),LM是逻辑设计模块。提供用户可自由编程的FPGA单元,用于总线(AMBA, ASB, AHB, APB)设备的开发 主要用于外设接口的添加开发。用户可将其外设设计通过总线直接连接到真实的环境中 可用作原型设计、测试,与ARM PrimeCell外设或用户自己的硬件IP集成 支持最新的FPGA技术和知名厂家(如:Xilinx, Altera
23、),目前最新的LM有: Xilinx:VirtexE XCV2000E 2Mgates Altera:Apex EP20K1000E 1.7Mgates 工作方式 单独使用 和Integrator其他模块(CM,IM,AP,SP)集成使用 支持多模块应用,最多可将4个LM堆接在一起 当在FPGA中设计了一个软核后,也可作CM使用,逻辑模块(LM),主要特性 Xilinx或Altera FPGA 1MB ZBT SRAM 9个通用LED 8个通用开关 时钟及复位电路 按钮 提供连接到FPGA的原型设计区 与IM的连接接口 与Integrator AMBA系统和控制总线全连接,包括中断、仲裁器和时
24、钟信号 AMBA HDL例子代码 2个32位的逻辑分析仪接口(直接连接到FPGA引脚上) JTAG, Trace, 逻辑分析仪接口,接口模块(IM),接口模块是外设添加开发系统的一部分 用于连接逻辑模块 提供标准接口,用户可以连接使用PrimeCell或用户自己在LM FPGA中实现的外设。 需要与兼容的LM配套使用 两种类型(资源及接口不尽相同) IM-PD1:主要针对便携式、无线、娱乐市场 IM-AD1:主要针对汽车电子、工业控制,接口模块(IM),IM-PD1的主要特性 显示支持 普通LCD带触摸屏(PrimeCell LCD) VGA, 由LCD驱动 USB收发接口(A型和B型) AC
25、-97音频编解码 Smart卡 MMC/SD卡 2个UART 6个通用按钮 若干通用I/O JTAG接口和逻辑分析仪接口 蜂鸣器,接口模块(IM),IM-AD1的主要特性 2个Bosch CC770 CAN总线控制器 2个8通道12位ADC 2个12位DAC 2个L298双向步进马达驱动器 2个2A带MOSFET开关控制的PWM 232串行口 2个32位通用I/O接口 JTAG接口和逻辑分析仪接口,ASIC开发平台(AP),AP是ARM公司提供的ATX母板风格的开发平台 用作SOC开发的母板 同时支持多达4个处理器内核 提供时钟、总线仲裁和中断处理 也提供RTOS支持和输入输出 扩展方式 组装
26、成支持多达5个内核模块或逻辑模块的开发系统 组装成多达3个PCI扩展卡的应用系统 安装在CompactPCI卡槽中 使用方式 桌面开发系统 ATX机箱中 CompactPCI卡,ASIC开发平台(AP),ASIC开发平台(AP),主要特性 通过FPGA实现以下系统控制: 系统总线接口(to CM, LM) 系统总线仲裁器 中断控制器 外设输入和输出控制 3个定时器/计数器 复位控制 系统状态和控制寄存器 时钟产生 32M flash 256K Boot ROM 512K SSRAM 2个232串口 系统扩展,支持CM和LM(最多5个) PCI总线接口,支持板上扩展或插入CPCI槽中 EBI存储器扩展接口,SOC验证平台,Integrator小结,Integrator ARM CORE的SOC设计平台 灵活高效的设计平台 缩短产品开发周期 降低生产成本 ,总结,ARM嵌入式系统开发环境 ADS+TRACE ARM-SOC设计环境 Integrator,结 束 语谢谢!,