MDK-ARMarmcc编译器――预定义宏(精)
更新时间:2023-10-31 18:53:01 阅读量: 综合文库 文档下载
- mdk-arm安装教程推荐度:
- 相关推荐
Predefined macros
This topic documents the predefined macros of the ARM compiler.
lists the macro names predefined by the ARM compiler for C and C++. Where the value field is empty, the symbol is only defined. Table 28. Predefined macros Name __arm__
Value When defined-Always defined for the ARM compiler, even when you specify the --thumb option. See also __ARMCC_VERSION.
__ARMCC_VERSION ver
Always defined. It is a decimal number, and is guaranteed to increase between releases. The format is PVVbbbb where:
???
P is the major version VV is the minor version bbbb is the build number. Note
Use this macro to distinguish between ARM Compiler 4.1 or later, and other tools that define __arm__.
__APCS_INTERWORK
-When you specify the --apcs /interwork option or set the CPU architecture to ARMv5T or later.
When you specify the --apcs /ropi option. When you specify the --apcs /rwpi option. When you specify the --apcs /fpic option. In C++ compiler mode, to specify that array new and delete are enabled.
Always defined. Similar to __FILE__, but indicates the primary source file rather than the current one (that is, when the current file is an included file.
If compiling for a big-endian target.
In C++ compiler mode, to specify that bool is a keyword. In C++ compiler mode.
__APCS_ROPI__APCS_RWPI__APCS_FPIC__ARRAY_OPERATORS__BASE_FILE__
----name
__BIG_ENDIAN_BOOL__cplusplus ---
__CC_ARM 1date ---
Always set to 1 for the ARM compiler, even when you specify the --thumb option. Always defined.Always defined.
In C++ mode when you specify the --using_std option.
Always set to an integer value that represents the version number of the Edison Design Group (EDG front-end. For example, version 3.8 is represented as 308.
The version number of the EDG front-end does not necessarily match the version number of the ARM compiler toolchain.
__DATE____EDG__
__EDG_IMPLICIT_USING_STD __EDG_VERSION__ __EXCEPTIONS 1-name ----
In C++ mode when you specify the --exceptions option.
When you specify the --signed_chars option (used by CHAR_MIN and CHAR_MAX. Always defined as a string literal.
When you specify the --fpmode=fast option. When you specify the --fpmode=ieee_full or --fpmode=ieee_fixed options.
When you specify the --fpmode=ieee_full option.
When you specify the --fpmode=ieee_full, --fpmode=ieee_fixed, or --fpmode=ieee_no_fenv options.
When you specify the --fpmode=ieee_full option. When you specify the --implicit_include option.
Always set. It is the source line number of the line of code containing this macro. Contains the filename part of the value of __FILE__. When you explicitly or implicitly use the --multifile option. []
Always set to 2 by default, unless you change the optimization level using the -Onum option.[a ]
__FEATURE_SIGNED_CHAR __FILE____FP_FAST __FP_FENV_EXCEPTIONS __FP_FENV_ROUNDING __FP_IEEE
__FP_INEXACT_EXCEPTION --num mod -num __IMPLICIT_INCLUDE __LINE____MODULE__ __MULTIFILE __OPTIMISE_LEVEL
__OPTIMISE_SPACE__OPTIMISE_TIME__PLACEMENT_DELETE ---
When you specify the -Ospace option. When you specify the -Otime option. In C++ mode to specify that placement delete (that is, an operator delete corresponding to a placement operator new, to be called if the constructor throws an exception is enabled. This is only relevant when using exceptions.In C++ mode when RTTI is enabled.
For sizeof(int, but available in preprocessor expressions. For sizeof(long, but available in preprocessor expressions. For sizeof(void *, but available in preprocessor expressions.
If compiling to use the software floating-point calling standard and library. Set when you specify the --fpu=softvfp option for ARM or Thumb, or when you specify --fpu=softvfp+vfpv2 for Thumb. In all compiler modes.Standard version information.
When you specify the --strict option. Support for signalling NaNs when you specify --fpmode=ieee_fixed or --fpmode=ieee_full. The number of the ARM base architecture of the target CPU irrespective of whether the compiler is compiling for ARM or Thumb. For possible values of __TARGET_ARCH_ARM in
relation to the ARM architecture versions, see .
The number of the Thumb base architecture of the target CPU irrespective of whether the compiler is compiling for ARM or Thumb. The value is defined as zero if the target does not support Thumb. For possible values of
__TARGET_ARCH_THUMB in relation to the ARM architecture versions, see . XX represents the target architecture and its value depends on the target architecture. For example, if you specify the compiler options --cpu=4T or --cpu=ARM7TDMI then __TARGET_ARCH_4T is defined.
XX represents the target CPU. The value of XX __RTTI__sizeof_int -444- __sizeof_long
__sizeof_ptr __SOFTFP__ __STDC__
__STDC_VERSION____STRICT_ANSI____SUPPORT_SNAN__ ----num
__TARGET_ARCH_ARM __TARGET_ARCH_THUMBnum __TARGET_ARCH_XX -
__TARGET_CPU_XX -
is derived from the --cpu compiler option, or the default if none is specified. For example, if you specify the compiler option --cpu=ARM7TM then __TARGET_CPU_ARM7TM is defined and no other symbol starting with __TARGET_CPU_ is defined.
If you specify the target architecture, then __TARGET_CPU_generic is defined. If the CPU name specified with --cpu is in lowercase, it is converted to uppercase. For example, --cpu=Cortex-R4 results in __TARGET_CPU_CORTEX_R4 being defined (rather than __TARGET_CPU_Cortex_R4. If the processor name contains hyphen (-
characters, these are mapped to an underscore (_. For example, --cpu=ARM1136JF-S is mapped to __TARGET_CPU_ARM1136JF_S.
__TARGET_FEATURE_DOUBLEWORD__TARGET_FEATURE_DSPMUL__TARGET_FEATURE_MULTIPLY
----ARMv5T and above.
If the DSP-enhanced multiplier is available, for example ARMv5TE. If the target architecture supports the long multiply instructions MULL and MULAL .
If the target architecture supports the
hardware divide instruction (that is, ARMv7-M or ARMv7-R. If the target architecture supports Thumb, ARMv4T or later. One of the following is set to indicate the FPU usage: ???
__TARGET_FEATURE_DIVIDE
__TARGET_FEATURE_THUMB__TARGET_FPU_xx --
__TARGET_FPU_NONE __TARGET_FPU_VFP __TARGET_FPU_SOFTVFP In addition, if compiling with one of the following --fpu options, the corresponding target name is set:
?
--fpu=softvfp+vfpv2,
__TARGET_FPU_SOFTVFP_VFPV2 --fpu=softvfp+vfpv3,
__TARGET_FPU_SOFTVFP_VFPV3 ? ?
--fpu=softvfp+vfpv3_fp16,
__TARGET_FPU_SOFTVFP_VFPV3_FP16 --fpu=softvfp+vfpv3_d16, __TARGET_FPU_SOFTVFP_VFPV3_D16 --fpu=softvfp+vfpv3_d16_fp16, __TARGET_FPU_SOFTVFP_VFPV3_D16_FP16 --fpu=vfpv2,
__TARGET_FPU_VFPV2 --fpu=vfpv3, __TARGET_FPU_VFPV3 --fpu=vfpv3_fp16,
__TARGET_FPU_VFPV3_FP16 --fpu=vfpv3_d16, __TARGET_FPU_VFPV3_D16 --fpu=vfpv3_d16_fp16,
__TARGET_FPU_VFPV3_D16_FP16 --fpu=vfpv4, __TARGET_FPU_VFPV4 --fpu=vfpv4_d16,
__TARGET_FPU_VFPV4_D16 ? ? ??? ? ? ??
See for more information.
__TARGET_PROFILE_R__TARGET_PROFILE_M
When you specify the --cpu=7-R option. When you specify any of the following options:
???
--cpu=6-M --cpu=6S-M --cpu=7-M __thumb__ -
When the compiler is in Thumb state. That is, you have either specified the --thumb option on the command-line or #pragma thumb in your source code.
Note ?
The compiler might generate some ARM code even if it is compiling for Thumb. __thumb and __thumb__ become defined or undefined when using #pragma thumb or #pragma arm, but do not change in cases where Thumb functions are
generated as ARM code for other reasons ?
Compiler Reference Guide: Predefined macros Page 6 of 6 (for example, a function specified as __irq. __TIME__ _WCHAR_T [a] time - Always defined. In C++ mode, to specify that wchar_t is a keyword. ARM recommends that if you have source code reliant on the __OPTIMISE_LEVEL macro to determine whether or not --multifile is in effect,
you change to using__MULTIFILE. Table 29 shows the possible values for
__TARGET_ARCH_THUMB (see Table 28, and how these values relate to versions of the ARM architecture. Table 29. Thumb architecture versions in relation to ARM architecture versions ARM architecture __TARGET_ARCH_ARM
__TARGET_ARCH_THUMB v4 v4T v5T, v5TE, v5TEJ v6, v6K, v6Z v6T2 v6-M, v6S-M v7-R v7-M, v7E-M 4 4 5 6 6 0 7 0 0 1 2 3 4 3 4 4 Built-in function name variables. Copyright ? Keil, An ARM Company. All rights reserved.
mk:@MSITStore:C:\\Keil_v5\\ARM\\HLP\\armccref.chm::/armccref_babjf... 2014-6-20
正在阅读:
公允价值应用问题研究05-20
二重积分的概念和性质03-28
林风眠生平10-25
浅谈中国贫富差距的影响09-01
试论余华《活着》中福贵形象11-08
沪教版三年级数学上期中考试卷05-26
2014教师招聘考试单项选择题库05-04
民法总论试题10-11上 - 附答案09-14
兰大《无机化学》15秋在线作业2满分答案09-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 预定义
- 编译器
- ARMarmcc
- MDK
- 浙教版科学八上第四章单元测试卷汇总
- 医药卫生类之妇产科论文(16)
- 小学语文课堂教学激励性口头评价
- 新编英语语法教程 第01-05讲 练习参考答案
- 如何把书上的字弄到电脑上 - 图文
- 焦化厂中心化验室的设计1
- 2016视觉艺术设计专业毕业设计中期检查说明
- shell编程
- 外国城市建设史(课件)
- IS-LM模型 复习 与习题
- WB实验步骤
- 浅谈英语学习中的记忆与遗忘
- 工程施工 直线加速器专项施工方案
- 华为手机包装件外观(UV工艺彩盒)可靠性测试规范
- 第八版生理学名词解释--期末考试
- 会计案例分析
- 2016年注册会计师考试公司战略与风险管理分析-风险与风险管理 - 图文
- 086第二章综合
- 绿化工程施工组织设计方案
- 浙江xx大学成教学院工程经济A卷