软件开发工具基本上都是集成开发工具,工具中集成了编译器/汇编器/连接定位器,如ADS、MDK。
ADS是由Metrowerks公司开发的ARM处理器下最主要的开发工具。ADS是全套开发软件工具,编译器生成的代码密度和执行速度优异,可快速低成本地创建ARM结构应用。
(1)分类
ADS包括以下3种调试器。
① AXD(ARM eXtended Debugger,ARM扩展调试器)。
② ARMSD(ARM Symbolic Debugger,ARM符号调试器)。
③ ADW/ADU(Application Debugger Windows/UNIX),与老版本兼容的Windows或UNIX操作系统下的ARM调试工具。
其中AXD不仅拥有低版本ARM调试器的所有功能,还新添了图形用户界面、更方便的视窗管理数据显示、格式化和编辑以及全套的命令行界面。该产品还包括其独创的RealMonitor工具(可以在前台调试的同时断点续存,并且在不中断应用的情况下读写内存及跟踪调试)。
(2)组成
① 编译器。ADS提供多种编译器,以支持ARM和Thumb指令的编译。ARMCC是ARM C编译器,TCC是Thumb C编译器,ARMCPP是ARM C++编译器,TCPP是Thumb C++编译器,ARMASM是ARM和Thumb的汇编器。
② 链接器。Armlink是ARM链接器。它既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件;又可以将多个目标文件链接成一个目标文件,以供进一步的链接。
③ 符号调试器。ARMSD是ARM和Thumb的符号调试器。它能够进行源码级的程序调试。用户可以在用C或汇编语言编写的代码中进行单步调试、设置断点、查看变量值和内存单元的内容。
④ Fromelf。Fromelf可将elf格式的文件转换为各种格式的输出文件,包括bin格式映像文件、Motorola 32位S格式映像文件、Intel 32位格式映像文件和Verilog十六进制文件。
⑤ ARMAR。ARMAR是ARM库函数生成器,它将一系列elf格式的目标文件以库函数的形式集合在一起。用户可以把一个库传递给一个链接器,以代替几个elf文件。
⑥ CodeWarrior。CodeWarrior集成开发环境(包括IDE等工具)为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C、C++或者ARM汇编语言编写的程序代码。
⑦ C和C++库。ADS提供ANSI C库函数和C++库函数,支持被编译的C和C++代码。用户可以把C库中的与目标相关的函数作为自己应用程序中的一部分,重新进行代码的实现。
(3)版本简介
ADS对汇编语言、C/C++、Java均能很好支持,是目前最成熟的ARM开发工具之一。很多ARM开发软件(如Keil)借用了ADS的编译器。
Keil MDK,也称“MDK-ARM”“RealView MDK”“I-MDK”“µVision4”等。目前Keil MDK由3家国内代理商提供技术支持和相关服务。
MDK-ARM软件为基于Cortex-M、Cortex-R、ARM7、ARM9处理器的设备提供了一个完整的开发环境。MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用的要求。
MDK-ARM有4个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK Professional。所有版本均提供一个完善的C/C++开发环境,其中MDK-Professional还包含大量的中间库。
其功能特点如下。
(1)完美支持Cortex-M、Cortex-R、ARM7和ARM9系列处理器。
(2)具有行业领先的ARM C/C++编译工具链。
(3)具有确定的Keil RTX,小封装实时操作系统(带源码)。
(4)具有μVision4 IDE集成开发环境、调试器和仿真环境。
(5)TCP/IP网络套件提供多种的协议和各种应用。
(6)提供带标准驱动类的USB设备和USB主机栈。
(7)为带图形用户端口的嵌入式系统提供了完善的GUI库文件支持。
(8)ULINKpro可实时分析运行中的应用程序,且能记录Cortex-M指令的每一次执行。
(9)具有关于程序运行的完整代码覆盖率信息。
(10)执行分析工具和性能分析器可使程序得到最优化。
(11)大量的项目例程帮助开发者快速熟悉MDK-ARM强大的内置特征。
(12)符合CMSIS(Cortex微控制器软件端口标准)。