ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
这些选项专用于 ARM 工具集。有关更多信息,请参阅参考的章节。节 2.3.11中列出了 ARM 专用汇编器选项。
ARM 编译器现在仅支持使用 ELF 目标文件格式和 DWARF 调试格式的嵌入式应用程序二进制接口 (EABI) ABI。如果希望支持传统的COFF ABI,请使用 ARM v5.2 代码生成工具,并参阅 SPNU151J 和 SPNU118J 以查看相关文档。
--code_state={16|32} | 生成 16 位 Thumb 代码。默认情况下生成 32 位代码。当选择支持 Cortex-R4、Cortex-M0、Cortex-M3 或 Cortex-A8 架构时,--code_state 选项会生成 Thumb-2 代码。有关 16 位与 32 位代码中的间接调用的详细信息,请参阅节 6.11.2.2。 | |
--common={on|off} | 当为on(默认设置)时,未初始化的文件范围变量作为通用符号发出。当为off 时,不会创建通用符号。允许创建通用符号的好处是生成的代码可以删除未使用的变量,否则会增加 .bss 段的大小。(大于 32 字节的未初始化变量通过放置在可以在链接时省略的单独子段中被单独地优化。)如果变量已分配到 .bss 以外的段或相对于另一个通用符号被定义,则变量不能作为通用符号。 | |
--embedded_constants={on|off} | 默认情况下,编译器会在函数中嵌入常量。这些常量可以包括文字、地址、字符串等。如果希望阻止从仅包含可执行代码的内存区域中读取,这将是一个问题。为了能够生成“仅执行的代码”,编译器提供了 --embedded_constants=[on|off] 选项。如果未指定此选项,则假设为on。该选项在以下器件上可用:Cortex-A8、Cortex-M3、Cortex-M4 和 Cortex-R4。 | |
--endian={ big | little } | 为编译的代码指定大端或小端格式。默认情况下使用大端格式。 | |
--enum_type={int|packed} | 指定枚举类型的基础类型。默认为 packed,这会使基础枚举类型成为适应枚举常量的最小整数类型。使用 --enum_type=int 会导致基础类型始终为 int。值超出 int 范围的枚举常量会生成错误。 | |
--float_support={ vfpv2 | vfpv3 | vfpv3d16 | fpv4spd16 | none } | 为各种版本和库生成矢量浮点 (VFP) 协处理器指令。请参阅节 2.14。 | |
--global_register={r5|r6|r9} | 禁止编译器使用 rx=[5|6|9]。在命令行上只能使用一个 --global_register 选项;如果指定了多个这样的选项,则只有最后一个选项生效。 | |
-md | 禁用双状态互通支持。请参阅节 6.11.1。 | |
-mv={4|5e|6|6M0|7A8|7M3 |7M4|7R4|7R5} | 选择处理器版本:ARM V4 (ARM7)、ARM V5e (ARM9E)、ARM V6 (ARM11)、ARM V6M0 (Cortex-M0)、ARM V7A8 (Cortex-A8)、ARM V7M3 (Cortex-M3)、ARM V7M4 (Cortex-M4)、ARM V7R4 (Cortex-R4) 或 ARM V7R5 (Cortex-R5)。默认为 ARM V4。 | |
--neon | 编译器可以使用第 7 版 ARM 架构的 Neon 扩展中提供的 SIMD 指令来生成代码。优化器尝试对源代码进行矢量化,以利用这些 SIMD 指令。为了生成矢量化 SIMD Neon 代码,请使用 -mv=7A8 选项选择第 7 版架构,并使用 --neon 选项启用 Neon 指令支持。 优化器用于对源代码进行矢量化。尽管建议使用 3 级 (--opt_level=3) 和 --opt_for_speed 选项,但还是需要 至少2 级优化(--opt_level=2 或 O2)。 |
|
--pending_instantiations=# | 指定在任何给定时间内可能正在进行的模板实例化的数量。使用 0 指定一个不受限制的数字。 | |
--plain_char={signed|unsigned} | 指定如何处理 C/C++ 普通字符变量。默认为无符号。 | |
--ramfunc={on|off} | 如果设置为 on,则指定所有函数都应放置在位于RAM 中的 .TI.ramfunc 段中。如果设置为 off,则只有具有 ramfunc 函数属性的函数才会以此种方式被处理。请参阅节 5.17.2。 较新的 TI 链接器命令文件通过在 .TI.ramfunc 段中放置函数来自动支持 --ramfunc 选项。如果链接器命令文件不包含 .TI.ramfunc 段的段规格,则可以修改链接器命令文件以将此段放在 RAM 中。有关段放置位置的详细信息,请参阅《ARM 汇编语言工具用户指南》。 |
|
--silicon_version | 选择指令集版本。选项是:
使用 --silicon_version=7M4 选项自动设置 --float_support=fpv4spd16 选项。如需禁用硬件浮点支持,请使用 --float_support=none 选项。 |
|
--unaligned_access={on|off} | 通知编译器目标器件支持未对齐的内存访问。通常,数据与其大小边界对齐。例如,32 位数据在 32 位边界上对齐,16 位数据在 16 位边界上对齐,8 位数据在 8 位边界上对齐。如果此选项设置为 on,则告知编译器为落在未对齐边界上的数据(16 位边界上的 32 位数据)生成加载和存储指令是合法的。可能发生未对齐数据访问的情况包括调用 memcpy() 和访问打包的结构体。默认情况下,所有 Cortex 器件都启用此选项。 | |
--use_dead_funcs_list[=fname] | 将文件中列出的每个函数放在单独的段中。如果指定了函数,将其放在fname 段中。不建议在 Code Composer Studio IDE 中使用此选项和 --generate_dead_funcs_list,相反,请考虑使用 --opt_level=4、--program_level_compile 和/或 --gen_func_subsections。 | |
--wchar_t={32|16} | 设置 C/C++ 类型 wchar_t 的大小(以位为单位)。默认情况下,编译器生成 16 位 wchar_t。16 位 wchar_t 对象与 32 位 wchar_t 对象不兼容;如果将这两个对象组合在一起,则会产生错误。 |