资源描述:
《IAR-AVR C编译器简要指南》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、IAR-AVR–C编译器简要指南IAR-AVRC编译器简要第一章数据类型(编译器支持ISO/ANSIC基本数据类型和一些附加数据类型。)数据类型大小范围对齐bool8bits0to11char8bits0to2551signedchar8bits-128to1271unsignedchar8bits0to2551signedshort16bits-32768to327671unsignedshort16bits0to655351signedint16bits-32768to327671unsignedint16bits0to6
2、55351signedlong32bits-231to231-11unsignedlong32bits0to232-11signedlonglong64bits-263to263-11unsignedlonglong64bits0to264-11bool数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含stdbool.h,bool数据类型也可以使用在C语言里。也可以使用布尔值false和true。1.1.整型数据:1.2.浮点数据类型:数据类型大小Range(+/-)ExponentMantissafloat32
3、bits±1.18E-38to±3.39E+388bits23bitsdouble*32bits(default)±1.18E-38to±3.39E+388bits23bitsdouble*64bits±2.23E-308to±1.79E+30811bits52bitslongdouble*32bits±1.18E-38to±3.39E+388bits23bitslongdouble*64bits±2.23E-308to±1.79E+30811bits52bits1.3.指针类型:指针有数据指针和函数指针。1.3.1数据指针:
4、数据指针的大小为8位,16位,24位。定义为:在整型数据类型后加”*”符号。如:char*p;整型数据没有24位,具体定义指针见后面扩展关键字章节。1.3.2函数指针:函数指针的大小为16位,24位。指针定义:在函数类型后加”*”符号。具体定义指针见后面章节。8IAR-AVR–C编译器简要指南第二章扩展关键字可以用来解决数据,函数的存放等。有了它我们就可以定义变量存放在EEPROM,FLASH中。定义中断函数,指针等等。2.1.数据扩展关键字:用于控制数据的存放类型和对象属性。●用于数据存储空间,控制指针和变量的类型和存放:_
5、_tiny,__near,__far,__huge,and__regvar●用于EEPROM存储空间,控制指针和变量的类型和存放:__eeprom●用于flash代码存储空间,控制指针和变量的类型和存放:__tinyflash,__flash,__farflash,and__hugeflash●用于I/O存储空间,控制指针和变量的类型和存放:__ext_io,__io●特别指示能够访问所有的数据和代码空间:__generic●其它的对象特性:__root__no_init.2.2.函数扩展关键字:用于控制数据的存放类型和对象属
6、性。●关键字控制函数的存放和类型。这组关键字必须在函数声明和定义的时候指定:__nearfuncand__farfunc.●关键字控制函数的类型。这组关键字必须在函数声明和定义的时候指定:__interrupt,__task,__version_1.●关键字仅仅控制有定义的函数:__root,__monitor,__noreturn.2.3.其它特别的关键字:@,用于变量的绝对地址定位。也可以用#pragmalocation命令#pragmavector,提供中断函数的入口地址。#pragma预编译里有很多命令,用在数据操作上
7、都有直接的简单关键字代替,如上面提到的用#pragmalocation命令和用@来对变量绝对地址定位效果一样。8IAR-AVR–C编译器简要指南第三章常用类型的具体操作方法根据第一和第二章节的内容,我们可以对IAR的数据进行具体的定义3.1.EEPROM区域数据存储。(用关键字__eeprom控制来存放,__eeprom关键字写在数据类型前后效果一样)__eepromunsignedchara;//定义一个变量存放在EEPROM空间unsignedchar__eeproma;//效果同上__eepromunsignedchar
8、p[];//定义一个数组存放在EEPROM空间对于EEPROM空间的变量操作同SRAM数据空间的操作方法一样,编译器会自动调用__EEPUT(ADR,VAL),__EEGET(VAR,ADR)宏函数来对EEPROM变量的操作。例:#include__eepro