IAR for AVR 学习笔记(4)--Flash操作

本文档介绍了IAR for AVR编译器中关于Flash存储的使用,包括如何定义和读取Flash变量、绝对地址定位、指针操作,以及宏函数和自编程函数的使用方法。通过实例展示了在AVR微控制器上进行Flash操作的各种技巧。
摘要由CSDN通过智能技术生成
 

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值