您的位置 首页 主动

根据AVR单片机中的EEPROM和FLASH的差异及使用方法解析

基于AVR单片机中的EEPROM和FLASH的区别及使用方法解析-FLASH用于存放程序,在程序运行过程中不能更改。我们编写的程序是烧录到FLASH中的;

RAM用作程序运行时的数据存储器;

EEPROM用于存放数据,是用来保存掉电后用户不希望丢的数据,开机时用到的参数。运行过程中可以改变。

1.EEPROM介绍

Electrically Erasable Programmable Read Only Memory电气可拭除可编程只读存储器

发展过程:ROM – 》 PROM –》 EPROM –》 EEPROM

2.EEPROM和FLASH的差异

2.1 使用上的差异

FLASH用于寄存程序,在程序运转过程中不能更改。咱们编写的程序是烧录到FLASH中的;

RAM用作程序运转时的数据存储器;

EEPROM用于寄存数据,是用来保存掉电后用户不期望丢的数据,开机时用到的参数。运转过程中能够改动。

FLASH是用于存储程序代码的,有些场合也或许用它来保存数据,当然条件是该单片机的FLASH工艺是能够自写的(运转中可擦写),但要留意FLASH的擦写次数一般小于一万次,并且一般FLASH只能按块擦除。EEPROM不能用来存程序,一般单片机的指令寻址不能到这个区域。EEPROM的擦写次数应有百万次,并且能够按字节擦写。EEPROM在一个PAGE内是能够恣意写的,FLSAH则必须先擦除成BLANK,然后再写入,而一般没有单字节擦除的功用,至少一个扇区擦除。

根据AVR单片机中的EEPROM和FLASH的差异及使用办法解析

2.2 结构上的差异

EEPROM和FLASH都是非易失性存储器。

FLASH的全称是FLASH EEPROM,但跟惯例EEPROM的操作办法不同。

FLASH 和EEPROM的最大差异是FLASH按扇区操作,EEPROM则按字节操作,二者寻址办法不同,存储单元的结构也不同,FLASH的电路结构较简略,相同容量占芯片面积较小,本钱天然比EEPROM低,因此合适用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM费事的多,所以更“人性化”的MCU规划会集成FLASH和EEPROM两种非易失性存储器,而廉价型规划往往只要 FLASH,前期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。

3.EEPROM的使用办法

AVRGCC里边自带有EEPROM读写函数。

使用时需包括头文件#include ,部分读写函数如下:

#define eeprom_is_ready() bit_is_clear(EECR, EEWE)//检测EEPROM是否准备好。OK回来1(回来EEWE位)

#define eeprom_busy_wait() do {} while (!eeprom_is_ready())//等候EEPROM操作完结

extern uint8_t eeprom_read_byte (const uint8_t *addr);//读取指定地址的一个字节8bit的EEPROM数据

extern uint16_t eeprom_read_word (const uint16_t *addr);//读取指定地址的一个字16bit的EEPROM数据

extern void eeprom_read_block (void *buf, const void *addr, size_t n);//读取由指定地址开端的指定长度的EEPROM数据

extern void eeprom_write_byte (uint8_t *addr, uint8_t val);//向指定地址写入一个字节8bit的EEPROM数据

extern void eeprom_write_word (uint16_t *addr, uint16_t val);//向指定地址写入一个字16bit的EEPROM数据

经过串口向单片机发送装备指令,单片机收到指令后,使用函数write_EEPROM_config()将相应的装备信息寄存于EEPROM中。体系初始化时,使用函数read_EEPROM_config()从EEPROM中取出相应的数据,用于体系的初始化。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/346890.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部