IAR 编译器相关知识学习==扩展关键字
来源:互联网 发布:开源snmp网络管理软件 编辑:程序博客网 时间:2024/05/16 00:52
声明:这篇文章部分转自别处,仅仅试过其中的某些symbols(符号,标识==可称为关键字),实际使用中,请结合自己的环境,这里顺便提供一种查找学习IAR相关知识的方法:
这是学习相关编译器知识的有效途径,下图为效果图:
关于嵌入式开发中,了解编译器的意义、重要性,推荐博文:
嵌入式领域,你要了解你的编译器
以下为IAR中可能存在的关键字....
1.扩展关键字:用于控制数据和指针
__eeprom 用于EEPROM 存储空间, 控制数据存放,控制指针类型和存放
__tinyflash, __flash, __farflash, __hugeflash 用于flash 存储空间, 控制数据存放,控制指针类型和存放
__ext_io, __io 用于I/O存储空间, 控制数据存放,控制指针类型和存放
__regvar 放置一个变量在工作寄存器中
2.函数扩展关键字:
__nearfunc __farfunc 用于控制数据存放,这组关键字必须在函数声明和定义的时候指定
__interrupt. 关键字控制函数的类型。这组关键字必须在函数声明和定义的时候指定
__root. 关键字仅仅控制有定义的函数
3.其它特别的关键字:
@ 用于变量的绝对地址定位。也可以用#pragma location 命令
#pragma vector 提供中断函数的入口地址。
__root 保证没有使用的函数或者变量也能够包含在目标代码中
__no_init 禁止系统启动的时候初始化变量.
asm, __asm 插入汇编代码
====================================================================
__root 关键字保证没有使用的函数或者变量也能够包含在目标代码中.
定义存放在__flash 空间的数据在程序编译时会自动生成代码嵌入到flash代码中,对于程序没有使用也要求编译的数据(比如可以在代码中嵌入你的版本号,时间等)必须加关键字__root 限制。
例:
#i nclude<iom8.h> __root __flash unsigned char p @ 0x10 =0x56; void main(void) { }
程序没有使用P变量,编译也会生成该代码。 :020000020000FC :1000000016C018951895189518951895189518955F :10001000569518951895189518951895189518953A :10002000189518951895089500008895FECF0FE94A :100030000DBF00E00EBFC0E8D0E003D0F4DFF4DF76 :06004000F3CF01E008957A :0400000300000000F9 :00000001FF
- IAR 编译器相关知识学习==扩展关键字
- IAR 扩展关键字
- IAR 扩展关键字
- IAR扩展关键字
- IAR 扩展关键字
- IAR 扩展关键字
- IAR之扩展关键字
- IAR 常用扩展关键字
- IAR C编译器相关(C语言补充学习)
- 关于CC2530的IAR工程编译器相关
- 编译器的相关知识
- 编译器的相关知识
- 编译器的相关知识
- 编译器相关知识
- C51编译器的扩展关键字
- ARM编译器的扩展关键字
- 关于IAR编译器定位不到函数或关键字问题!
- 编译器相关知识搜集整理
- Python正则表达式指南
- Echarts地图标记重合问题原因
- 安卓学习之路7之插件ToggleButton实现开关效果
- Maven 手动添加 JAR 包到本地仓库
- windows.h头文件
- IAR 编译器相关知识学习==扩展关键字
- 【分享】新浪微博、QQ分享、微信分享的申请过程
- html转义字符
- Rational Rose 2007
- [FIDO]U2F NFC协议
- 字体在线转换
- [iOS]The operation couldn’t be completed. (LaunchServicesError error 0.)
- MyEclipse has detected that less than 5% of the 22MB of PS Survivor Space (Heap memory) space remain
- 计算X年X月X日是当年第X天