首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM基础知识八

ARM基础知识八

****************************************************

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 源文件编译时间



本文来源:21control    作者:
返回列表