IAR-AVRC编译器简要指南.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IAR-AVRC编译器简要指南

IAR-AVR C编译器简要 第一章 数据类型(编译器支持 ISO/ANSI C 基本数据类型和一些附加数据类型。) 1.1. 整型数据: 1.2.浮点数据类型: 1.3.指针类型:指针有数据指针和函数指针。 1.3.1 数据指针:数据指针的大小为8位,16位,24位。定义为:在整型数据类型后加”*”符号。如: char *p; 整型数据没有24位,具体定义指针见后面扩展关键字章节。 1.3.2 函数指针:函数指针的大小为16位,24位。 指针定义:在函数类型后加”*”符号。具体定义指针见后面章节。 第二章 扩展关键字 可以用来解决数据,函数的存放等。有了它我们就可以定义变量存放在EEPROM,FLASH中。定义中断函数,指针等等。 2.1.数据扩展关键字:用于控制数据的存放类型和对象属性。 2.2.函数扩展关键字:用于控制数据的存放类型和对象属性。 2.3.其它特别的关键字: @ ,用于变量的绝对地址定位。也可以用#pragma location命令 #pragma vector,提供中断函数的入口地址。 #pragma预编译里有很多命令,用在数据操作上都有直接的简单关键字代替,如上面提到的用#pragma location 命令和用 @ 来对变量绝对地址定位效果一样。 常用类型的具体操作方法 根据第一和第二章节的内容,我们可以对IAR的数据进行具体的定义 3.1.EEPROM区域数据存储。(用关键字 __eeprom控制来存放, __eeprom关键字写在数据类型前后效果一样) __eeprom unsigned char a;//定义一个变量存放在EEPROM空间 unsigned char __eeprom a;//效果同上 __eeprom unsigned char p[];//定义一个数组存放在EEPROM空间 对于EEPROM空间的变量操作同SRAM数据空间的操作方法一样,编译器会自动调用 __EEPUT(ADR,VAL), __EEGET(VAR, ADR)宏函数来对EEPROM变量的操作。 例: #includeiom8.h __eeprom unsigned char p[]; __eeprom unsigned char a; void main(void) {p[1]++;// EEPROM变量的操作 a++;// EEPROM数组的操作 } 定义常数在EEPROM空间,只要给变量赋与初值就可以了。由于常数在EEPROM空间的地址是随机分配的,读取变量才可以读取到常数值。 __eeprom unsigned char a=9;//定义一个常数存放在EEPROM空间 __eeprom unsigned char p[]={1,2,3,4,5,6,7,8};//定义一个组常数存放在EEPROM空间 例: #includeiom8.h __eeprom unsigned char p[]={1,2,3,4,5,6,7,8}; __eeprom unsigned char a=9; void main(void) {PORTB=a;//读取EEPROM空间值9 PORTC=p[0]; //读取EEPROM空间值 } EEPROM空间绝对地址定位: __eeprom unsigned char a @ 0x8;//定义一个变量存放在EEPROM空间0X08单元 __eeprom unsigned char p[] @ 0x22//定义一个数组存放在EEPROM空间,开始地址为0X22单元 __eeprom unsigned char a @ 0x08=9;//定义一个常数存放在EEPROM空间0X08单元 __eeprom unsigned char p[] @0x22={1,2,3,4,5,6,7,8}; //定义一个组常数存放在EEPROM空间开始地址为0X22单元 由于常数在EEPROM空间的地址是已经分配的,读取EEPROM空间值可以用变量和地址。 3.2.与 __eeprom有关的指针操作。 __eeprom关键字控制指针的存放和属性 3.2.1指向eeprom空间的指针EEPROM指针(控制属性) unsigned char __eeprom *p;//定义一个指向EEPROM空间地址的指针,8位指针本身存放在SARM中。 unsigned int __eeprom *p;//定义一个指向EEPROM空间地址的指针,16位指针本身存放在SARM中。 unsigned char __eep

文档评论(0)

kakaxi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档