iar-avr –c 编译器简要指南

iar-avr –c 编译器简要指南

ID:18208216

大小:101.00 KB

页数:56页

时间:2018-09-15

iar-avr –c 编译器简要指南_第1页
iar-avr –c 编译器简要指南_第2页
iar-avr –c 编译器简要指南_第3页
iar-avr –c 编译器简要指南_第4页
iar-avr –c 编译器简要指南_第5页
资源描述:

《iar-avr –c 编译器简要指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、IAR-AVR–C编译器简要指南IAR-AVRC编译器简要本文所有资料来源于IAREmbeddedWorkbenchforAtmelAVRV4Evaluation里的EWAVR_CompilerReference.pdf(IARC/C++编译器参考指南),文中提到“具体参阅IARC/++编译器参考指南”指的就是该资料。本资料针对于IARAVR4.20A版本第一章数据类型(编译器支持ISO/ANSIC基本数据类型和一些附加数据类型。)1.1.整型数据1.2.浮点数据类型:数据类型大小范围对齐bool8bits0to11char8bits0to2551signedchar8bits-128to

2、1271unsignedchar8bits0to2551signedshort16bits-32768to327671unsignedshort16bits0to655351signedint16bits-32768to327671unsignedint16bits0to655351signedlong32bits-231to231-11unsignedlong32bits0to232-11signedlonglong64bits-263to263-11unsignedlonglong64bits0to264-11bool数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含st

3、dbool.h,bool数据类型也可以使用在C语言里。也可以使用布尔值false和true。数据类型大小范围ExponentMantissafloat32bits±1.18E-38to±3.39E+388bits23bitsdouble*32bits(default)±1.18E-38to±3.39E+388bits23bitsdouble*64bits±2.23E-308to±1.79E+30811bits52bitslongdouble32bits±1.18E-38to±3.39E+388bits23bitslongdouble64bits±2.23E-308to±1.79E+3081

4、1bits52bits1.3.指针类型:指针有数据指针和函数指针。1.3.1数据指针:数据指针的大小为8位,16位,24位。定义为:在整型数据类型后加”*”符号。例:char*p;整型数据没有24位,具体定义指针见后面扩展关键字章节。1.3.2函数指针:函数指针的大小为16位,24位。指针定义:在函数类型后加”*”符号。具体参阅IARC/++编译器参考指南。第二章扩展关键字可以用来解决数据,函数的存放等。有了它我们就可以定义变量存放在EEPROM,FLASH空间。定义中断函数,指针等等。IAR关键字很多,这里只列举常用的,其余的参考IARC/++编译器参考指南2.1.扩展关键字:用于控制数

5、据和指针。__eeprom用于EEPROM存储空间,控制数据存放,控制指针类型和存放__tinyflash,__flash,__farflash,__hugeflash用于flash存储空间,控制数据存放,控制指针类型和存放:__ext_io,__io用于I/O存储空间,控制数据存放,控制指针类型和存放__regvar放置一个变量在工作寄存器中2.2.函数扩展关键字:。__nearfunc__farfunc用于控制数据存放,这组关键字必须在函数声明和定义的时候指定:__interrupt.关键字控制函数的类型。这组关键字必须在函数声明和定义的时候指定__root.关键字仅仅控制有定义的函数

6、:2.3.其它特别的关键字:@用于变量的绝对地址定位。也可以用#pragmalocation命令#pragmavector提供中断函数的入口地址。__root保证没有使用的函数或者变量也能够包含在目标代码中__no_init禁止系统启动的时候初始化变量.asm,__asm插入汇编代码第三章EEPROM常用类型的具体操作方法根据第一和第二章节的内容,我们可以对IAR的数据进行具体的定义3.1.EEPROM区域数据存储。用关键字__eeprom控制来存放,__eeprom关键字写在数据类型前后效果一样。__eepromunsignedchara;//定义一个变量存放在EEPROM空间unsig

7、nedchar__eeproma;//效果同上__eepromunsignedcharp[];//定义一个数组存放在EEPROM空间对于EEPROM空间的变量操作同SRAM数据空间的操作方法一样,编译器会自动调用__EEPUT(ADR,VAL),__EEGET(VAR,ADR)宏函数来对EEPROM变量的操作。例:#include__eepromunsignedcharp[];__eepromunsign

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。