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
這些選項(xiàng)專用于 ARM 工具集。有關(guān)更多信息,請(qǐng)參閱參考的章節(jié)。節(jié) 2.3.11中列出了 ARM 專用匯編器選項(xiàng)。
ARM 編譯器現(xiàn)在僅支持使用 ELF 目標(biāo)文件格式和 DWARF 調(diào)試格式的嵌入式應(yīng)用程序二進(jìn)制接口 (EABI) ABI。如果希望支持傳統(tǒng)的COFF ABI,請(qǐng)使用 ARM v5.2 代碼生成工具,并參閱 SPNU151J 和 SPNU118J 以查看相關(guān)文檔。
| --code_state={16|32} | 生成 16 位 Thumb 代碼。默認(rèn)情況下生成 32 位代碼。當(dāng)選擇支持 Cortex-R4、Cortex-M0、Cortex-M3 或 Cortex-A8 架構(gòu)時(shí),--code_state 選項(xiàng)會(huì)生成 Thumb-2 代碼。有關(guān) 16 位與 32 位代碼中的間接調(diào)用的詳細(xì)信息,請(qǐng)參閱節(jié) 6.11.2.2。 | |
| --common={on|off} | 當(dāng)為on(默認(rèn)設(shè)置)時(shí),未初始化的文件范圍變量作為通用符號(hào)發(fā)出。當(dāng)為off 時(shí),不會(huì)創(chuàng)建通用符號(hào)。允許創(chuàng)建通用符號(hào)的好處是生成的代碼可以刪除未使用的變量,否則會(huì)增加 .bss 段的大小。(大于 32 字節(jié)的未初始化變量通過放置在可以在鏈接時(shí)省略的單獨(dú)子段中被單獨(dú)地優(yōu)化。)如果變量已分配到 .bss 以外的段或相對(duì)于另一個(gè)通用符號(hào)被定義,則變量不能作為通用符號(hào)。 | |
| --embedded_constants={on|off} | 默認(rèn)情況下,編譯器會(huì)在函數(shù)中嵌入常量。這些常量可以包括文字、地址、字符串等。如果希望阻止從僅包含可執(zhí)行代碼的內(nèi)存區(qū)域中讀取,這將是一個(gè)問題。為了能夠生成“僅執(zhí)行的代碼”,編譯器提供了 --embedded_constants=[on|off] 選項(xiàng)。如果未指定此選項(xiàng),則假設(shè)為on。該選項(xiàng)在以下器件上可用:Cortex-A8、Cortex-M3、Cortex-M4 和 Cortex-R4。 | |
| --endian={ big | little } | 為編譯的代碼指定大端或小端格式。默認(rèn)情況下使用大端格式。 | |
| --enum_type={int|packed} | 指定枚舉類型的基礎(chǔ)類型。默認(rèn)為 packed,這會(huì)使基礎(chǔ)枚舉類型成為適應(yīng)枚舉常量的最小整數(shù)類型。使用 --enum_type=int 會(huì)導(dǎo)致基礎(chǔ)類型始終為 int。值超出 int 范圍的枚舉常量會(huì)生成錯(cuò)誤。 | |
| --float_support={ vfpv2 | vfpv3 | vfpv3d16 | fpv4spd16 | none } | 為各種版本和庫(kù)生成矢量浮點(diǎn) (VFP) 協(xié)處理器指令。請(qǐng)參閱節(jié) 2.14。 | |
| --global_register={r5|r6|r9} | 禁止編譯器使用 rx=[5|6|9]。在命令行上只能使用一個(gè) --global_register 選項(xiàng);如果指定了多個(gè)這樣的選項(xiàng),則只有最后一個(gè)選項(xiàng)生效。 | |
| -md | 禁用雙狀態(tài)互通支持。請(qǐng)參閱節(jié) 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)。默認(rèn)為 ARM V4。 | |
| --neon | 編譯器可以使用第 7 版 ARM 架構(gòu)的 Neon 擴(kuò)展中提供的 SIMD 指令來生成代碼。優(yōu)化器嘗試對(duì)源代碼進(jìn)行矢量化,以利用這些 SIMD 指令。為了生成矢量化 SIMD Neon 代碼,請(qǐng)使用 -mv=7A8 選項(xiàng)選擇第 7 版架構(gòu),并使用 --neon 選項(xiàng)啟用 Neon 指令支持。 優(yōu)化器用于對(duì)源代碼進(jìn)行矢量化。盡管建議使用 3 級(jí) (--opt_level=3) 和 --opt_for_speed 選項(xiàng),但還是需要 至少2 級(jí)優(yōu)化(--opt_level=2 或 O2)。 |
|
| --pending_instantiations=# | 指定在任何給定時(shí)間內(nèi)可能正在進(jìn)行的模板實(shí)例化的數(shù)量。使用 0 指定一個(gè)不受限制的數(shù)字。 | |
| --plain_char={signed|unsigned} | 指定如何處理 C/C++ 普通字符變量。默認(rèn)為無(wú)符號(hào)。 | |
| --ramfunc={on|off} | 如果設(shè)置為 on,則指定所有函數(shù)都應(yīng)放置在位于RAM 中的 .TI.ramfunc 段中。如果設(shè)置為 off,則只有具有 ramfunc 函數(shù)屬性的函數(shù)才會(huì)以此種方式被處理。請(qǐng)參閱節(jié) 5.17.2。 較新的 TI 鏈接器命令文件通過在 .TI.ramfunc 段中放置函數(shù)來自動(dòng)支持 --ramfunc 選項(xiàng)。如果鏈接器命令文件不包含 .TI.ramfunc 段的段規(guī)格,則可以修改鏈接器命令文件以將此段放在 RAM 中。有關(guān)段放置位置的詳細(xì)信息,請(qǐng)參閱《ARM 匯編語(yǔ)言工具用戶指南》。 |
|
| --silicon_version | 選擇指令集版本。選項(xiàng)是:
使用 --silicon_version=7M4 選項(xiàng)自動(dòng)設(shè)置 --float_support=fpv4spd16 選項(xiàng)。如需禁用硬件浮點(diǎn)支持,請(qǐng)使用 --float_support=none 選項(xiàng)。 |
|
| --unaligned_access={on|off} | 通知編譯器目標(biāo)器件支持未對(duì)齊的內(nèi)存訪問。通常,數(shù)據(jù)與其大小邊界對(duì)齊。例如,32 位數(shù)據(jù)在 32 位邊界上對(duì)齊,16 位數(shù)據(jù)在 16 位邊界上對(duì)齊,8 位數(shù)據(jù)在 8 位邊界上對(duì)齊。如果此選項(xiàng)設(shè)置為 on,則告知編譯器為落在未對(duì)齊邊界上的數(shù)據(jù)(16 位邊界上的 32 位數(shù)據(jù))生成加載和存儲(chǔ)指令是合法的??赡馨l(fā)生未對(duì)齊數(shù)據(jù)訪問的情況包括調(diào)用 memcpy() 和訪問打包的結(jié)構(gòu)體。默認(rèn)情況下,所有 Cortex 器件都啟用此選項(xiàng)。 | |
| --use_dead_funcs_list[=fname] | 將文件中列出的每個(gè)函數(shù)放在單獨(dú)的段中。如果指定了函數(shù),將其放在fname 段中。不建議在 Code Composer Studio IDE 中使用此選項(xiàng)和 --generate_dead_funcs_list,相反,請(qǐng)考慮使用 --opt_level=4、--program_level_compile 和/或 --gen_func_subsections。 | |
| --wchar_t={32|16} | 設(shè)置 C/C++ 類型 wchar_t 的大?。ㄒ晕粸閱挝唬?。默認(rèn)情況下,編譯器生成 16 位 wchar_t。16 位 wchar_t 對(duì)象與 32 位 wchar_t 對(duì)象不兼容;如果將這兩個(gè)對(duì)象組合在一起,則會(huì)產(chǎn)生錯(cuò)誤。 | |