ARM嵌入式开发流程和开发工具(含ADS与Multi ICE简介)(3)

2021-09-24 16:31

ARM嵌入式开发流程和开发工具(含ADS与Multi ICE简介)

的运行,排除错误,优化性能。

4.3 ADS与Multi-ICE简介

本节将简单介绍ARM开发软件ADS(ARM Developer Suite)和Multi-ICE硬件仿真器。在随后的8.1节中,将以一个简单的例子描述如何在ADS集成开发环境下编写、编译并调试应用程序。

ARM ADS全称为ARM Developer Suite,是ARM公司推出的用于ARM程序设计、开发和调试的集成开发工具。现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。它支持Windows NT4,Windows 2000,Windows 98、Windows 95、Windows XP和Windows Me等操作系统。

ADS由命令行开发工具,ARM运行时库,图形化集成开发环境(Code Warrior和AXD),实用程序和支持软件组成。下面将就每个部分作详细的介绍。

本文以ADS 1.2为例,并假设已经将ADS 1.2安装在“C:\Program Files\ARM\ADSv1_2\”目录下。

4.3.1 命令行开发工具

ADS包含一系列基于命令行的ARM编译、汇编、链接等工具,它们位于ADS安装目录的bin子目录下(C:\Program Files\ARM\ADSv1_2\Bin)。它们既可以在命令控制台环境下使用,同时由于已被嵌入到了ADS的图形界面中,所以也可以在图形界面下通过参数设置等手段来使用。

1、ARM C(C++)编译器

ADS包含包含多种C编译器,包括:armcc,tcc,armcpp和tcpp。其中armcc是ARM C编译器,armcpp是ARM C++编译器,tcc是Thumb C 编译器,tcpp是Thumb C++ 编译器。

2、ARM汇编器(armasm)

armasm是ARM和Thumb的汇编器. 它对用ARM 汇编语言和Thumb 汇编语言写的源代码进行汇编。

3、ARM链接器(armlink)

armlink是ARM连接器。该命令既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。ARM链接器生成的是ELF格式的可执行映像文件。

5、符号调试器(armsd)

armsd是ARM 和Thumb的符号调试器。它能够进行源码级的程序调试。用户可以在用C或汇编语言写的代码中进行单步调试,设置断点,查看变量值和内存单元的内容。

4.3.2 ARM运行时库

ADS提供以下的:

在ADS软件安装路径的lib目录(C:\Program Files\ARM\ADSv1_2\lib)下有两个子目

ARM嵌入式开发流程和开发工具(含ADS与Multi ICE简介)

录:armlib和cpplib。这两个子目录提供了两种运行时库来支持被编译的C和C++代码,它们分别是:ANSI C函数库和C++函数库。

环境变量ARMLIB必须被设置成指向库路径。另外一种指定ARM C和ARM C++库路径的方法是,在链接的时候使用操作选项-libpath directory(directory代表库所在的路径),来指明要装载的库的路径。需要说明的是,ADS安装成功后,ARMLIB被缺省指向到C:\Program Files\ARM\ADSv1_2\LIB目录,因此通常不用进行设置链接器就会自动从ARMLIB指定的库路径中找出这两个函数库的路径。

1、ANSI C函数库:(armlib)

ARM C 库包含浮点代数运算库、数学库等各类库函数。与这些库相应的头文件在C:\Program Files\ARM\ADSv1_2\include目录中。这个C函数库是由以下几部分组成:

1)在ISO C标准中定义的函数;

2)在semihosted环境下(semihosting是针对ARM目标机的一种机制,它能够根据应用程序代码的输入/输出请求,与运行有调试功能的主机通讯。这种技术允许主机为通常没有输入和输出功能的目标硬件提供主机资源)用来实现C库函数的与目标相关的函数;

3)被C和C++编译器所调用的支持函数。

ARM C 库提供了额外的一些部件支持C++,并为不同的结构体系和处理器编译代码。 ARM C库函数是以二进制格式提供的,并禁止修改。如果读者想对库函数创建新的实现的话,可以把这个新的函数编译成目标文件,然后在链接的时候把它包含进来。这样在链接的时候,使用的是新的函数实现而不是原来的库函数。

通常情况下,为了创建依赖于目标的应用程序,在ANSI C库中只有很少的几个函数需要实现重建。

2、C++函数库:

这个子目录包含了Rogue Wave C++库和C++支持函数库。Rogue Wave C++库和C++支持函数库合在一起被称为ARM C++库。与这些库相应的头文件安装在C:\Program Files\ARM\ADSv1_2\include目录下。这个库是由以下几部分组成的:

1)版本为2.01.01的Rogue Wave Standard C++库;

2)C++编译器使用的支持函数;

3)Rogue Wave库所不支持的其他的C++函数。

Rogue Wave Standard C++函数库的源代码不是免费发布的,可以从Rogue Wave Software Inc.,或ARM公司通过支付许可证费用来获得源文件。

4.3.3 图形化集成开发环境(Code Warrior和AXD)

1、CodeWarrior for ARM

CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了ARM RISC 的优势, 使产品开发人员能够很好的应用尖端的片上系统技术. 该工具是专为基于ARM RISC的处理器而设计的, 它可加速并简化嵌入式开发过程中的每一个环节,使得开发人员只需通过一个集成软件开发环境就能研制出ARM产品,在整个开发周期中,开发人员无需离开CodeWarrior开发环境, 因此节省了在操做工具上花的时间,使得开发人员有更多的精力投入到代码编写上来,

CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面。用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C,C++,或ARM汇编语言的程序代码。通过提供下面的功能,CodeWarrior IDE缩短了用户开发项目代码的周期。

1)全面的项目管理功能;

ARM嵌入式开发流程和开发工具(含ADS与Multi ICE简介)

2)子函数的代码导航功能,使得用户迅速找到程序中的子函数。

可以在CodeWarrior IDE为ARM配置各种命令行工具的参数,实现对工程代码的编译,汇编和链接。

CodeWarrior IDE 能够让用户将源代码文件,库文件还有其他相关的文件以及配置设置等放在一个工程中。每个工程可以创建和管理生成目标设置的多个配置。例如,要编译一个包含调试信息的生成目标和一个基于ARM7TDMI的硬件优化生成目标,生成目标可以在同一个工程中共享文件,同时使用各自的设置。

CodeWarrior IDE为用户提供下面的功能:

源代码编辑器,它集成在CodeWarrior IDE的浏览器中,能够根据语法格式,使用不同的颜色显示代码;

ARM嵌入式开发流程和开发工具(含ADS与Multi ICE简介)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:普洱茶生茶的泡法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: