单片机中EEPROM和FLASH的区别是什么

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,然后再写入,而一般没有单字节擦除的功能,至少一个扇区擦除。
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中取出相应的数据,用于系统的初始化。


纵行科技ZETag汽车供应链物流可视化解决方案帮助客户降本增效
低压栅极驱动器的结构组成和工作过程
玻璃检测试验箱的介绍
2021年全球半导体行业并购案大盘点
基于深度学习的大豆种子全表面识别分选系统
单片机中EEPROM和FLASH的区别是什么
CAD中标注关联是什么? 有什么用处?
华为P9、华为Mate9这两款旗舰做工很精致,颜值美到让三星都妒忌!
联通18日开启4G商用 三大运营商竞争愈加激烈
谁是 5G时代的顶级玩家?
关于电源时序管理的分析和介绍
UI设计师的10个常见错误,你是否中招了?
12v电瓶充电器使用方法
欧盟拟将统一充电器接口 Micro USB将成标准
TTL电平与RS232电平的区别
市场回暖?这类芯片即将涨价!
三星投放广告 宣传自己的三款新ATIV设备
新一代北斗三号信号体制的高精度导航定位芯片正式发布
现实中的开放源码云计算,第2部分:针对云进行开发
智慧能耗在线监测解决方案