ARM编译器中预定义的宏

发布者:bianzitong521最新更新时间:2016-08-06 来源: eefocus关键字: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                               源文件编译时间

关键字:ARM  编译器  预定义 引用地址:ARM编译器中预定义的宏

上一篇:ARM连接器介绍
下一篇:AVR 数码管显示设计 按键加减数

推荐阅读最新更新时间:2024-03-16 15:04

基于Keil MDK-ARM 和 IAR EWARM进行仿真打印的配置
1写在前面 很多初学者习惯使用软件仿真,应该是很多人都知道的一款仿真软件。 以前开发板相对较贵,且快递不方便,使用仿真软件可以理解。现在便宜的STM32开发板就十几块,还用仿真软件,我不是很理解。 有经验的人都知道,仿真和实际运行情况很多时候都不一样,相信不用我说,大家都明白。 因此,我个人不是很推荐大家仿真,本文内容可能存在纰漏,仅限个人学习。 下面讲述基于Keil MDK-ARM 和 IAR EWARM进行仿真打印的配置。 2Keil仿真打印配置 Keil MDK-ARM不能仿真,原因出在仿真参数出现了问题: 修改这两处参数为:DARMSTM.DLL -pSTM32F103ZE 基于前面使用STM32CubeMX生成工
[单片机]
基于Keil MDK-<font color='red'>ARM</font> 和 IAR EWARM进行仿真打印的配置
Keil(MDK-ARM)系列教程(六)_Configuration(Ⅱ)
Ⅰ、写在前面 本文接着上一篇文章“Configuration(Ⅰ)”进行讲述Configuration后面三项Shortcut Keys快捷键、Text Completion代码完形、Other其他的内容。 Shortcut Keys快捷键:Keil软件里面所有快捷键都可以在Configuration配置中查看的到,也可以自定义快捷键。 Text Completion代码完形:包含代码自动完成、代码模板、语法错误检测等。 Other其他:这个选项不常用,包含UVSOCK (TCP/IP)设置、打开软件设置等。 阅读本文之前建议先阅读上一篇文章: Keil(MDK-ARM)系列教程(五)_Configuratio
[单片机]
Keil(MDK-<font color='red'>ARM</font>)系列教程(六)_Configuration(Ⅱ)
围观ARM控制的逆变器电源电路设计方案
系统总体方案 如图1 所示,  逆变器 系统由升压电路、逆变电路、控制电路和反馈电路组成。低压 直流电源 DC12V经过升压电路升压、 整流 和 滤波 后得到约DC170V高压直流电,然后经全桥逆变电路DC/AC转换和LC 滤波器 滤波后得到AC110V的正弦交流电。 逆变器以 ARM 控制器为控制核心,输出电压和电流的反馈信号经反馈电路处理后进入ARM处理器的片内AD,经AD转换和数字PI运算后,生成相应的SPWM脉冲信号,改变SPWM的调制比就能改变输出电压的大小,从而完成整个逆变器的闭环控制。 SPWM方案选择 (1)PWM电源芯片方案 采用普通的PWM电源控制芯片,如SG3525、TL494、KA7500等,此类芯
[电源管理]
围观<font color='red'>ARM</font>控制的逆变器电源电路设计方案
基于ARM9的指纹识别门禁系统
  指纹门禁系统是基于生物特征识别技术的一项高科技安全设施,近年来在国内外得到了广泛的应用,并已成为现代化建筑智能化的标志之一。对于一些核心机密部门,如重要机关、科研实验室、档案馆、民航机场等场所,指纹门禁系统可以提供高效、智能、便捷的授权控制。由于指纹具有携带方便、人人各异、终生不变的特点,因此利用指纹识别作为身份认证的手段,与传统的钥匙、密码相比,大大提高了安全性与可信性。   该系统基于ARM9芯片Samsung S3C2440AL,以Veridicom公司指纹采集芯片FPS200作为硬件平台,以嵌入式Linux为软件平台。在该研究领域中,基于PC平台的识别系统一直是研究的重点,本文实现的基于ARM平台的系统具有轻便,易安
[单片机]
openocd 命令行烧写ARM裸机程序
以前是用RVDS 的IDE来烧写调试ARM程序的,不过RVDS虽然是集成化的调试工具调试起来方便,但是有的时候只知其一,不知其二,只知道按部就班的来点击按钮,忽略了一些本质性的东西。而且RVDS还有一个不好的地方是它只能在windows平台下运行,不支持Linux OS。为了便于学习Linux,使用Openocd会是个不错的选择,可以学习gnu 汇编,Makefile编写,工具链命令行使用。 如果这些命令搞熟悉了,你还可以利用Qt 来做个自己的图形化界面烧写调试工具。(不过这只是个壳子而已,精髓在于openocd ,所以如果有时间你还可以分析一下Openocd的源码,因为它是开源的,开源的东西就是好,它可以满足你的好奇心,虽然有些
[单片机]
基于ARM920T内核的RISC嵌入式CPU解析方案
1 引言 在当今后PC时代,嵌入式系统应用得越来越广泛,嵌入式产品充斥着许多领域,日常生活的手机,MP4,PDA等都属于典型的嵌入式系统。在嵌入式系统中,微处理器和操作系统是进行应用开发的基础。在微处理器方面,S3C2410是Samsung公司推出的一款基于ARM920T内核的16/32位 RISC嵌入式CPU,主要面向手持设备以及高性价比、低功耗的应用。在操作系统方面,Windows CE 5.0是由微软提供的一款嵌入式操作系统,在Windows CE 4.2基础上,它又加入了一些新特性以满足市场需求。板级支持包 (Board Support Package,BSP)是操作系统的一个组成部分,提供对硬件的支持。BSP的开发在整
[单片机]
百度AI开发者大会| 李书福来助阵 李彦都说了啥?
百度AI开发者大会神秘嘉宾,原来是吉利控股集团董事长李书福。 2019百度AI开发者大会,李书福来助阵,双方将会又有哪些动作?大会上李彦宏都说了啥?有哪些值得关注的亮点? 图片来源百度 百度牵手吉利 7月3日,在百度AI开发者大会上,李书福亲临现场,和李彦宏共同宣布,吉利控股与百度将就智能网联、智能驾驶、智能家居、电子商务等AI技术在汽车、出行领域应用展开全面战略合作,共同研究、探索“最强汽车+最强AI”,携手加速中国智能汽车的大规模普及,引领全球智能出行体验。 图片来源百度 在大会现场,通过小度车载系统,身在会场的李彦宏与车内的李书福做了一次现场连线,为大家演示了车机互动的种种功能。
[汽车电子]
百度AI开发者大会| 李书福来助阵 李彦<font color='red'>宏</font>都说了啥?
ARM与英特尔争霸服务器芯片市场 开启人工智能战争
  抢攻 英特尔 独占的服务器市场,在手机领域大放异彩的芯片业者 ARM 触角再向外延伸,其和微软(Microsoft)、惠与科技等大厂合作,目标至2021年市占从零提高到25%, ARM 与 英特尔 的人工智能(AI)战争即将开打。下面就随嵌入式小编一起来了解一下相关内容吧。   HPE、微软和 英特尔 在服务器市场是盟友关系,微软与英特尔的合作,使得PC进入主流市场;HPE前身HP,和英特尔携手研发64bit处理器ItaNIum,陆续从大型服务器到PC都采用英特尔制的处理器,如今双双发布采用 ARM 架构的消息。   ARM早在2011年就曾进军服务器市场,Calxeda于2011年推出搭载ARM处理器核心的低功耗服务器,当
[嵌入式]
热门资源推荐
热门放大器推荐
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved