欢迎来到天天文库
浏览记录
ID:18208216
大小:101.00 KB
页数:56页
时间:2018-09-15
《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
此文档下载收益归作者所有