FLASH常用类型的具体操作方法
4.1.FLASH 区域数据存储。
用关键字 __flash 控制来存放, __ flash 关键字写在数据类型前后效果一样
__flash unsigned char a;//定义一个变量存放在flash空间
unsigned char __flash a;//效果同上
__flash unsigned char p[];//定义一个数组存放在flash空间
对于flash空间的变量的读操作同SRAM数据空间的操作方法一样,编译器会自动用
LPM,ELPM 指令来操作。
例:
#i nclude<iom8.h>
__flash unsigned char p[];
__flash unsigned char a;
void main(void)
{PORTB=p[1];// 读flash 数组变量的操作
PORTB=a;// 读flash 变量的操作
}
由于在正常的程序中,flash 空间是只读的,所以没有赋值的变量是没有意义的。定义常数在flash 空间,只要给变量赋与初值就可以了。由于常数在flash空间的地址是随机分配的,读取变量才可以读取到常数值。
10
IAR-AVR –C 编译器简要指南
__flash unsigned char a=9;//定义一个常数存放在EEPROM空间。
__flash unsigned char p[]={1,2,3,4,5,6,7,8};
//定义一个组常数存放在flash 空间。
例:
#i nclude<iom8.h>
__flash unsigned c