编译器命令行选项另请参阅第4-50页的#pragmaarmsection[section_sort_list].第4-44页的attribute((section))第4-47页的_attribute_(zero_init))2.1.11-C此选项指示编译器执行编译步骤,但不执行链接步骤。注意此选项不同于大写的-C选项。用法建议在包含多个源文件的工程中使用-c选项。另请参阅第2-8页的--asm.第2-56页的--list.第2-66页的-0filename第2-80页的-S-C2.1.12此选项指示编译器在预处理程序输出中保留注释。选择此选项会隐式选择-E选项。注意此选项不同于小写的-c选项。另请参阅第2-34页的-EARMDUI0348AC2-13版权所有2007ARMLimited。保留所有权利
编译器命令行选项 ARM DUI 0348AC 版权所有 © 2007 ARM Limited。保留所有权利。 2-13 另请参阅 • 第4-50 页的#pragma arm section [section_sort_list] • 第4-44 页的_attribute_((section)) • 第4-47 页的_attribute_((zero_init)) 2.1.11 -c 此选项指示编译器执行编译步骤,但不执行链接步骤。 注意 此选项不同于大写的 -C 选项。 用法 建议在包含多个源文件的工程中使用 -c 选项。 另请参阅 • 第2-8 页的- - asm • 第2-56 页的- - list • 第2-66 页的- o filename • 第2-80 页的- S 2.1.12 -C 此选项指示编译器在预处理程序输出中保留注释。 选择此选项会隐式选择 -E 选项。 注意 此选项不同于小写的 -c 选项。 另请参阅 • 第2-34 页的- E
编译器命令行选项2.1.133--c90此选项启用C90源代码的编译。缺省设置系统会为具有.c、.ac或.tc后缀的文件隐式选择此选项。另请参阅c99-第2-45页的--gnu第2-84页的--[no_/strict第1-3页的源语言模式编译器用户指南中第2-11页的文件命名约定2.1.14--c99此选项启用C99源代码的编译。另请参阅--c90第2-45页的--gmu.第2-84页的--[no_/strict第1-3页的源语言模式2.1.15--[no_]code_gen此选项允许或禁止生成对象代码。如果禁止生成对象代码,则编译器将只执行语法检查,而不创建目标文件。缺省选项缺省为--code_gen。2-14ARMDUI0348AC版权所有2007ARMLimited。保留所有权利
编译器命令行选项 2-14 版权所有 © 2007 ARM Limited。保留所有权利。 ARM DUI 0348AC 2.1.13 -c90 此选项启用 C90 源代码的编译。 缺省设置 系统会为具有 .c、.ac 或 .tc 后缀的文件隐式选择此选项。 另请参阅 • -c99 • 第2-45 页的- - gnu • 第2-84 页的- -[no_]strict • 第1-3 页的源语言模式 • 编译器用户指南中第2-11 页的文件命名约定 2.1.14 -c99 此选项启用 C99 源代码的编译。 另请参阅 • -c90 • 第2-45 页的- - gnu • 第2-84 页的- -[no_]strict • 第1-3 页的源语言模式 2.1.15 -[no_]code_gen 此选项允许或禁止生成对象代码。 如果禁止生成对象代码,则编译器将只执行语法检查,而不创建目标文件。 缺省选项 缺省为 -code_gen
编译器命令行选项2.1.16--[no_]compile_al1_input此选项启用或禁用文件扩展名处理的禁止行为。如果启用该禁止行为,则编译器将完全禁止文件扩展名的处理,同时将所有输入文件视为具有后缀.C。缺省选项缺省为--no_compile_al1_input。另请参阅编译器用户指南中第2-11页的文件命名约定2.1.17--cpp此选项启用C++源代码的编译。缺省选项系统会为具有.cpp、.cxx、.c++、.cc、.CC、.acpp、或.tcpp后缀的文件隐式选择此选项。另请参阅第2-3页的--[no_Janachronisms.第2-14页的--c90第2-14页的--c99.第2-45页的--gm第2-84页的--[no_]strict.第1-3页的源语言模式2.1.183--cpu=list此选项列出可与--cpu=name选项一起使用的受支持体系结构和处理器的名称。另请参阅--cpu=nameARMDUI0348AC2-15版权所有2007ARMLimited。保留所有权利
编译器命令行选项 ARM DUI 0348AC 版权所有 © 2007 ARM Limited。保留所有权利。 2-15 2.1.16 -[no_]compile_all_input 此选项启用或禁用文件扩展名处理的禁止行为。 如果启用该禁止行为,则编译器将完全禁止文件扩展名的处理,同时将所有输入 文件视为具有后缀 .c。 缺省选项 缺省为 -no_compile_all_input。 另请参阅 • 编译器用户指南中第2-11 页的文件命名约定 2.1.17 -cpp 此选项启用 C++ 源代码的编译。 缺省选项 系统会为具有 .cpp、.cxx、.c++、.cc、.CC、.acpp、或 .tcpp 后缀的文件隐式选择此 选项。 另请参阅 • 第2-3 页的- -[no_]anachronisms • 第2-14 页的- - c90 • 第2-14 页的- - c99 • 第2-45 页的- - gnu • 第2-84 页的- -[no_]strict • 第1-3 页的源语言模式 2.1.18 -cpu=list 此选项列出可与 -cpu=name 选项一起使用的受支持体系结构和处理器的名称。 另请参阅 • -cpu=name
编译器命令行选项2.1.19--cpu=name此选项为所选的ARM处理器或体系结构启用代码生成。语法--cpu=name其中是处理器或体系结构的名称。name如果name是处理器的名称,则按ARM数据表中显示的形式输入该名称:例如,ARM7TDMI、ARM1176JZ-S、MPCore。如果name是体系结构的名称,则该名称必须包含在表2-2中显示的体系结构列表内。处理器和体系结构名称都不区分大小写。不接受通配符。表2-2受支持的ARM体系结构描述体系结构4没有Thumb的ARMv44T具有Thumb的ARMv45T具有Thumb和交互操作的ARMv5STE具有Thumb、交互操作、DSP乘法以及双字指令的ARMv5STEJ具有Thumb、交互操作、DSP乘法、双字指令以及Jazelle扩展a的ARMv56具有Thumb、交互操作、DSP乘法、双字指令、未对齐和混合端支持、Jazelle扩展以及多媒体扩展的ARMv66MARMv6微控制器规格,仅具有Thumb并增加了处理器状态指令6K具有SMP扩展的ARMv66S-MARMv6微控制器规格,仅具有Thumb并增加了处理器状态指令和操作系统扩展6T2具有Thumb-2的ARMv66Z具有安全扩展的ARMv62-16ARMDUI0348AC版权所有2007ARMLimited。保留所有权利
编译器命令行选项 2-16 版权所有 © 2007 ARM Limited。保留所有权利。 ARM DUI 0348AC 2.1.19 -cpu=name 此选项为所选的 ARM 处理器或体系结构启用代码生成。 语法 -cpu=name 其中: name 是处理器或体系结构的名称。 如果 name 是处理器的名称,则按 ARM 数据表中显示的形式输入该 名称;例如,ARM7TDMI、ARM1176JZ-S、MPCore。 如果 name 是体系结构的名称,则该名称必须包含在表2-2 中显示的 体系结构列表内。 处理器和体系结构名称都不区分大小写。 不接受通配符。 表2-2 受支持的 ARM 体系结构 体系结构 描述 4 没有 Thumb 的 ARMv4 4T 具有 Thumb 的 ARMv4 5T 具有 Thumb 和交互操作的 ARMv5 5TE 具有 Thumb、交互操作、DSP 乘法以及双字指令的 ARMv5 5TEJ 具有 Thumb、交互操作、DSP 乘法、双字指令以及 Jazelle® 扩展a的 ARMv5 6 具有 Thumb、交互操作、DSP 乘法、双字指令、未对齐和混合端支持、 Jazelle 扩展以及多媒体扩展的 ARMv6 6-M ARMv6 微控制器规格,仅具有 Thumb 并增加了处理器状态指令 6K 具有 SMP 扩展的 ARMv6 6S-M ARMv6 微控制器规格,仅具有 Thumb 并增加了处理器状态指令和操 作系统扩展 6T2 具有 Thumb-2 的 ARMv6 6Z 具有安全扩展的 ARMv6
编译器命令行选项表2-2受支持的ARM体系结构(续)体系结构描述7仅具有Thumb-2且没有硬件除法器的ARMv7b7-A支持基于虚拟MMU的内存系统的ARMv7应用程序规格,具有ARM、Thumb、Thumb-2和Thumb-2EE指令集、DSP支持以及32位SIMD支持7-RARMv7实时规格,具有ARM、Thumb、Thumb-2、DSP支持以及32位SIMD支持7-MARMv7微控制器规格,仅具有Thumb-2且具有硬件除法器aARM编译器不能生成Java字节代码。b.ARMv7是不可识别的ARM体系结构。它是体系结构ARMv7-A、ARMv7-R和ARMv7-M的公共子集。缺省选项如果未指定--cpu选项,编译器将采用--Cpu=ARM7TDMI。若要获取CPU体系结构和处理器的完整列表,请使用--cpu=1ist选项。用法以下主要的几点适用于处理器和体系结构选项处理器选择处理器时需要选择适当的体系结构、浮点单元(FPU)以及内存组织。受支持的--cpu值包括所有当前的ARM产品名称或体系结构版本。此外,还支持其他基于ARM体系结构的处理器,如MarvellFeroceon和IntelXScale。如果为--cpu选项指定了处理器,则将针对该处理器优化已编译的代码。这使得编译器可使用特定的协处理器或指令调度来优化性能。ARMDUI0348AC2-17版权所有2007ARMLimited。保留所有权利
编译器命令行选项 ARM DUI 0348AC 版权所有 © 2007 ARM Limited。保留所有权利。 2-17 缺省选项 如果未指定 -cpu 选项,编译器将采用 -cpu=ARM7TDMI。 若要获取 CPU 体系结构和处理器的完整列表,请使用 -cpu=list 选项。 用法 以下主要的几点适用于处理器和体系结构选项: 处理器 • 选择处理器时需要选择适当的体系结构、浮点单元 (FPU) 以 及内存组织。 • 受支持的 -cpu 值包括所有当前的 ARM 产品名称或体系结构 版本。 此外,还支持其他基于 ARM 体系结构的处理器,如 Marvell Feroceon 和 Intel XScale。 • 如果为 -cpu 选项指定了处理器,则将针对该处理器优化已编 译的代码。这使得编译器可使用特定的协处理器或指令调度 来优化性能。 7 仅具有 Thumb-2 且没有硬件除法器的 ARMv7b 7-A 支持基于虚拟 MMU 的内存系统的 ARMv7 应用程序规格,具有 ARM、Thumb、Thumb-2 和 Thumb-2EE 指令集、DSP 支持以及 32 位 SIMD 支持 7-R ARMv7 实时规格,具有 ARM、Thumb、Thumb-2、DSP 支持以及 32 位 SIMD 支持 7-M ARMv7 微控制器规格,仅具有 Thumb-2 且具有硬件除法器 a. ARM 编译器不能生成 Java 字节代码。 b. ARM v7 是不可识别的 ARM 体系结构。它是体系结构 ARMv7-A、ARMv7-R 和 ARMv7-M 的公共子集。 表2-2 受支持的 ARM 体系结构 (续) 体系结构 描述