ARM Developer Suite 介绍 T H E A R C H I T E C T U R E F O R T H E D I G I T A L W O R L D 1
ADS 1.2 ADS1.2 是为嵌入式 ARM 设计的一整套软件开发工具 从最初的软件原型到最终优化的 ROM 代码 ADS1.2 发布于 2001 的 12 月份 支持的主机系统 IBM compatible PCs with Windows 95, 98, 2000, ME or NT4 Sun workstations ti 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://www.arm.com/devsupp/ 2 2
ADS 1.2 新增功能 支持最新的 ARM 内核 ARM926EJ-S, ARM9EJ-S, VFPv2 支持 V5TEJ 体系结构 ARMulator 仿真执行 Java bytecode Bytecode 显示 Jazelle 状态 主机系统可支持 Red Hat Linux (6.2 and 7.1) 库管理器可合并各种库 使用 pragmas, 可实现出色代码和数据的布局 为可重定位的代码设置新的链接选项 编译器同时输出汇编码和目标码 3 3
主要模块 ANSI C 编译器 - armcc and tcc ISO / Embedded C++ 编译器 - armcpp and tcpp ARM / Thumb 汇编器 - armasm Linker - armlink Windows 集成开发环境 - CodeWarrior o Debugger - AXD armsd 可向前兼容 格式转换器 - fromelf 4 4
CodeWarrior CodeWarrior 提供统一的图形用户界面来集成各种开发工具, 支持多种主机平台 多种编程语言 多种处理器和多种实时操作系统, 称为下一代集成开发环境 CodeWarrior 集成环境包括以下几个功能模块 : 编辑器 源码浏览器 搜索引擎 构造系统 调试器 工程管理器 编辑器 编译器 连接器和调试器对应开发过程的四个主要阶段, 其它模块用以支持代码浏览和构造控制, 工程管理器控制整个过程 该集成环境是一个多线程应用个多线程应用, 能在内存中保存状态信息 符号表和对象代码, 从而提高操作速度 ; 能跟踪源码变化, 进行自动编译和连接 该集成环境的运行需要 24M 到 32M 内存 CodeWarrior 集成环境支持多种主机平台, 在不同平台上具有相同的图形用户界面, 其源文件和工程文件可在不同平台之间交换 使用 CodeWarrior 集成环境, 开发语言有多种选择, 支持 C,C++, Object Pascal,Java 等高级语言, 也支持汇编语言 CodeWarrior 一个重要的特点是其 plugin 设计 : 根据不同开发 IDE 的需要, 提供特殊的服务软件 该软件以一个独立于 IDE 的文件方式提供, 比较典型的有 Windows 下的 DLL 文件,Mac OS 和 UNIX 下的共享库文件等 该项功能如同 Web 浏览器或 Adobe Photoshop 的 plugin 功能 这样, 只要提供特殊的 plugin 文件, 就可以自动增加 IDE 的功能 CodeWarrior 目前能识别多种 plugin:compiler,linker, pre-linker,post-linker,preference panel,version control,apis for debugger 等 Metrowerks 公司已有近 200 个不同的 plugin 在应用 Plugin 通过一个中间平台和 IDE 通信,Metrowerks 公司为该设计提供完整的文档和应用编程接口, 从而方便其他开发人员开发可完整集成进 CodeWarrior 的特殊功能组件 在 plugin 设计结构下, 用户应用 Codewarrior 时, 既可采用 Metrowerks 公司集成的工具, 也可采用第三方工具, 和自己设计的工具, 以适合不同的开发需要 CodeWarrior 支持不同的主机平台 编程语言 处理器和目标操作系统 5 5
主要模块 库管理器 - armar CandC++ C++ 库 指令级仿真 - ARMulator 同时包含 ARM Firmware Suite ARM Application Library RealMonitor 6 6
工具的使用 ASM source module(s).s armasm C source module(s).c armcc -c tcc -c C++ source module(s) ELF object file(s) with DWARF2 debug tables Libraries.o.axf armlink.o fromelf ELF / DWARF2 image Disassembly Code size Data size etc 命令行 makefile IDE fromelf.cpp armcpp -c tcpp -c.o armar Library ROM format 7 7
CodeWarrior C/C++ Project Sensitive Manager Editor C/C++ Browser 8 8
AXD Docking windows Docking toolbars Registers Source/ Disassembly Memory 9 9
完全支持 ANSI 及其兼容 C 编译器 ISO / Embedded C++ compilers 支持所有的 ARM 处理器 ( 用 -cpu ) ) C / C++ 编译器 关键特性 e.g. ARM7TDMI, StrongARM, ARM9TDMI, ARM9E, ARM10, Xscale 优化的代码可以实现源码级调试 : -O0 : 最佳的调试信息, 没有优化 (-g) Debug -O1 : 大部分优化, 比较好的调试信息 ( g) DebugRel -O2 : 完整优化, 有限的调试信息 Release 支持 ROPI / RWPI 内嵌汇编 C 和汇编的交叉列表 ( -S -fs ) 10 10
C / C++ Compiler 数据类型 下面这些数据类型可支持 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 integer pointer,char( ( 默认为 unsigned, 可用 -zc 变为 signed) 之外, 上述所有的默认值为 Signed 11 11
提供的库 ANSI C 库 完整的文件处理, 字符, 数学库等, 在目标平台可支持 默认情况下, 使用 semihosted SWI s 和主机调试器通讯 比如 : 文件操作,I/O 操作 库 函数包这些不需要为重定向而重新编译 适合嵌入式使用 - 没有单独的内嵌变量 自动选择正确的库 决定于你所使用的字节对齐方式, 独立的位置, 堆栈的检查等 保留了 run time 功能支持和浮点支持 C++ 库包含 : 标准 c++ 库 (2.01 版本 ) C++ 编译器包含 run time 功能支持 12 12
支持的格式 ELF / DWARF2 image Multi-ICE Host running debugger ARMulator 指令级仿真 JTAG 调试 Angel 串口方式调试, 目标板上运行 monitor 13 13
ARMulator 针对某种 ARM 内核进行指令级仿真 精确的指令 允许对程序的执行进行校验 可以对存储器周期进行统计 允许为指定的存储器和时钟速度, 设定系统的基准 配置所有的 ARM 核 最新的含 CACHE 的核 e.g ARM946E, ARM966E, ARM10 (incl VFP), XScale 支持 TRACE - 提供工具包的扩展 所有的模板用 C 编写, 可以容易地用 VISUAL C++ 增加新的外设模板 也可仿真 IRQ 或 FIQ 中断 ADS 1.2 Debug Target Guide 有有关模板的详细说明 14 14
Multi-ICE Debugger and Multi-ICE server (can be run on separate machines) CPU 5 wire BREAKPT JTAG TAP EmbeddedICE Logic-RT Control Address Data 调试的系统就是最终系统 也存在第三方的协议转换器产品 http://www.arm.com/devsupp/ice_analyz/ ARM 15 15
Angel Debug Monitor 运行在目标板上的调试监控 ARM 核里不需要 EmbeddedICE dice 逻辑 处理器不需要实际的停止 可用于实时应用 应用程序必须运行在 RAM 上 ( 可设置断点 单步等 ) 通过 ADP (Angel Debug Protocol) 和主机通信 通常采用串口 ARM Firmware Suite (AFS) 提供全部的源代码 主要部分用 C 代码来写, 易移植到新的硬件 也可移植到第三方的目标板 16 16
ARM 应用库 一个优化的软件包 : 包括数学运算和应用 由 ARM 体系结构专家手工制作的 优秀的 ARM 例子程序 完全源代码, 包含文档和创建 (BUILD) 工具 在用户应用软件里使用, 是免版税的 软件包包括 : DSP 变换 :- DCT, FFT DSP 过滤 - FIR, IIR & LMS 数学计算 - 快速定点乘法和除法 平方根, 立方根, 三角函数 有符号的饱和加法 其它大量有用的函数 17 17
创建一个新的工程项目 选择 File/New 命令, 打开对话框, 选 Project ADS 的使用 18 18
创建一个新的源文件 选择 File/New 命令, 打开对话框, 选 File ADS 的使用 19 19
文档 安装和 LICENSE 管理 入门手册 汇编手册 编译 链接和工具手册 目标调试手册 Angel, ARMulators, Semihosting 调试手册 CodeWarrior IDE 手册 开发手册 在 ARM 上写代码 其它 DynaText 在线手册 打印的文档 PDF WINDOWS 下的在线帮助 (F1) 应用指南可在如下网址下载 : http://www.arm.com/documentation/appnotes 技术支持网址 : http://www.arm.com/devsupp/sales+support/faq.html html 20 20