ARM編譯器中預定義的宏

ARM編譯器預定義了一些宏,這些預定義宏對應一定的數值,有些預定義宏沒有對應數值,見下表︰

_arm _ 使用編譯器armcc,tcc,armcpp,tcpp時

_ARMCC_VERSION Ver 代表編譯器版本號,其格式為︰
PVtbbb,其中︰
P為產品編號(1代表ADS)
V為副版本號(1代表1.1)
T為補丁版本號(0代表1.1)
bbb為build號(比如650)

_APCS_INTERWORK _ 使用編譯選項-apcs/interwork時

_APCS_ROPI _ 使用編譯選項apcs/ropi時

_RWPI _ 使用編譯選項-apcs/rwpi時

_APCS_SWST _ 使用編譯選項-apcs/swst時

_BIG_ENDIAN _ 編譯器針對目標系統使用big-endian內存模式時

_cplusplus _ 編譯器工作與C++模式時

_CC_ARM _ 返回編譯器的名稱

_DATE_ date 編譯源檔案的日期

_embedded_cplusplus 編譯器工作於EC++模式時

_FEATURE_SINGED_CHAE 使用編譯設定選項-zc時設定該預定義宏

_FILE_ name 包含全路徑的當前被編譯的源檔案名稱

_func_ name 當前被編譯的函數名稱

_LINE_ num 當前被編譯的代碼行號名稱

_MOUDLE_ mod 預定義宏_FILE_的檔案名稱部分

_OPTIMISE_SPACE _ 使用編譯選項-OSPACE時

_OPTIMISE_TIME _ 使用編譯選項-Otime時

_pretty_func name unmangled的當前函數名稱

_sizeof_int 4 sizeof(int),在預處理表達式中可以使用

_sizeof_long 4 sizeof(long),在預處理表達式中可以使用

_sizeof_ptr 4 sizeof(void*)在預處理表達式中可以使用

_SOFTFP _ 編譯時使用浮點數

_ _ 在各種編譯器模式下

_STDC_VERSION _ 標準的版本訊息

_STRICT_ANSI_ _ 使用編譯選項-STRICT時

_TARGET_ARCH_xx _ xx代表ARM體系編號

_TARGET_CPU_xx _ xx代表CPU編號

_TARGET_FEATURE_ 當ARM體系支援指令PLD,LDRD,STRD,MCRR,MRRC時
DOUBLEWORD _ 設定該定義宏

_TARGET_FEATURE_ 當系統中包含DSP乘法處理器時,設定該
DSPMUL _ 預定義宏

_TARGET_FEATURE_ 如果目標ARM體系支援半字訪問以及有符號的位元組數據
HALFWORD _ ,設定該預定義宏

_TARGET_FEATURE_ 如果目標ARM體系支援長乘法指令MULL和
MULTIPLY _ MUAL,設定該預定義宏

_TARGET_FEATURE_ 如果目標ARM體系支援THUMB指令
THUMB _

_TARGET_FPU_xx _ 表示FPU選項,可能取值如下所示︰
_TARGET_FPU_VFP
_TARGET_FPU_FPA
_TARGET_FPU_SOFTVFP
_TARGET_FPU_SOFTVFP_VFP
_TARGET_FPU_SOFTFPA
_TARGET_FPU_NONE

_thumb _ 編譯器為tcc或tcpp時,設定該預定義宏

_TIME 源檔案編譯時間

立你斯 發表在 痞客邦 留言(0) 人氣()