- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM 应用系统开发详解──基于S3C4510B 的系统设计
第8章 ARM ADS 集成开发环境的使用
在这一章里,将介绍 ARM 开发软件 ADS(ARM Developer Suite) 。通过学习如何在
CodeWarrior IDE 集成开发环境下编写,编译一个工程的例子,使读者能够掌握在ADS 软件
平台下开发用户应用程序。本章还描述了如何使用AXD 调试工程,使读者对于调试工程有
个初步的理解,为进一步的使用和掌握调试工具起到抛砖引玉的作用。
本章主要内容有:
- ADS 软件组成介绍
- 使用ADS 创建工程
- 用AXD 进行代码调试
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 时实库,GUI 开发环境(Code Warrior 和AXD) ,实用程
序和支持软件组成。有了这些部件,用户就可以为ARM 系列的RISC 处理器编写和调试自
己的开发应用程序了。
下面就详细介绍一下ADS 的各个组成部分。
8.1.1 命令行开发工具
这些工具完成将源代码编译,链接成可执行代码的功能。
ADS 提供下面的命令行开发工具:
armcc
armcc 是ARM C 编译器。这个编译器通过了Plum Hall C Validation Suite 为ANSI C 的
一致性测试。armcc 用于将用ANSI C 编写的程序编译成32 位ARM 指令代码。
因为armcc 是我们最常用的编译器,所以对此作一个详细的介绍。
在命令控制台环境下,输入命令:
armcc –help
可以查看armcc 的语法格式以及最常用的一些操作选项
armcc 最基本的用法为: armcc [options] file1 file2 ... filen
这里的option 是编译器所需要的选项,fiel1,file2…filen 是相关的文件名。
这里简单介绍一些最常用的操作选项。
-c :表示只进行编译不链接文件;
-C :(注意:这是大写的C)禁止预编译器将注释行移走;
-Dsymbol:定义预处理宏,相当于在源程序开头使用了宏定义语句#define symbol ,
这里symbol 默认为1;
-E :仅仅是对C 源代码进行预处理就停止;
ARM 应用系统开发详解──基于S3C4510B 的系统设计
-goptions :指定是否在生成的目标文件中包含调试信息表;
-Idirectory :将 directory 所指的路径添加到#include 的搜索路径列表中去;
-Jdirectory :用directory 所指的路径代替默认的对#include 的搜索路径;
-ofile :指定编译器最终生成的输出文件名。
-O0 :不优化;
-O1 :这是控制代码优化的编译选项,大写字母O 后面跟的数字不同,表示的优化级别
就不同,-O1 关闭了影响调试结果的优化功能;
-O2 :该优化级别提供了最大的优化功能;
-S:对源程序进行预处理和编译,自动生成汇编文件而不是目标文件;
-Usymbol :取消预处理宏名,相当于在源文件开头,使用语句#undef symbol;
-Woptions :关闭所有的或被选择的警告信息;
有关更详细的选项说明,读者可查看ADS 软件的在线帮助文件。
armcpp
armcpp 是ARM C++编译器。它将ISO C++ 或EC++ 编译成32 位ARM 指令代码。
tcc
tcc 是Thumb C 编译器。该编译器通过了Plum Hall C Validat
文档评论(0)