1、擦写方式不同
FLASH在写新的数据前必须先擦除,而且经常是只允许整页擦除,没有办法擦除一个字节,换句话说,只能成块的读写,特别是写。
EEPROM写之前不需要擦除,可以每次改写一个字节。当然,也有缺点,EEPROM读写速度慢,另外,容量比较小,也就是说EEPROM要贵。
2、使用情况不同
对单片机来说,关键性的数据,如传感器的标定数据,用户配置参数等,用EEPROM存储,而像文件等大容量的数据记录,或者经常读但很少写的数据,可以用FLASH闪存存储,像图片、字库、文件记录。
除了操作次数相当高外,操作时间也很短,基本上命令发完就完成了读写操作,不需要eeprom的写等待查询。
3、擦写次数不同
eeprom比flash多很多,一般flash数据保证保存10年擦写的次数在几千次(现在有些已经到了上万次),eeprom的数据比这个大,但普通eeprom也是有限制。
如果要“无限制”,可以选择FRAM,它虽然读一次和写一次都算一次操作,但操作次数可以到10的12次方级别,基本可以认为是无限。
总结
flash是用来存储代码的,在运行过程中不能改;EEPROM是用来保存用户数据,运行过程中可以改变,比如一个时钟的闹铃时间初始化设定为12:00,后来在运行中改为6:00,这是保存在EEPROM里,不怕掉电,就算重新上电也不需要重新调整到6:00
两者都是非易失性存储器
FLASH的全称是FLASH EEPROM,但跟常规EEPROM的操作方法不同
FLASH和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有FLASH,早期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。
一般来说eeprom中存放开机是用到的参数,不可丢失的变量等,而FLASH中会存放程序,记录文件等。