控制芯片中 EEPROM 与 FLASH 的区别

掉电需保护且在程序运行过程中需要修改的少量参数保存在EEPROM中,其擦除次数较Flash多,Flash用来做程序和一些掉电保护和不需修改的数据。

Flash memory指的是“闪存”,所谓“闪存”,它也是一种非易失性的内存,属于EEPROM的改进产品。它的最大特点是必须按块(Block)擦除(每个区块的大小不定,不同厂家的产品有不同的规格),而EEPROM则可以一次只擦除一个字节(Byte)。目前“闪存”被广泛用在PC机的主板上,用来保存BIOS程序,便于进行程序的升级。其另外一大应用领域是用来作为硬盘的替代品,具有抗震、速度快、无噪声、耗电低的优点,但是将其用来取代RAM就显得不合适,因为RAM需要能够按字节改写,而Flash ROM做不到。

FLASH的全称是FLASH EEPROM,但跟常规EEPROM的操作方法不同。FLASH 和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有 FLASH,EEPROM在运行中可以被修改,而FLASH在运行时不能修改,EEPROM可以存储一些修改的参数,Flash中存储程序代码和不需修改的数据。     所谓的Flash是用来形容整个存储单元的内容可以一次性擦除。所以,理论上凡是具备这样特征的存储器都可以称为Flash memory.E2PROM里面也分FF-EEPROM和FLASH EEPROM的。现在大家所讲的Flash memory实际上分为两大类,一类是Floating Gate Device, 一类是Charge Trapping Device。这里的分类标准主要是program 与 erase的机制的不同。

补充:

一:FLASH和E2PROM

1:相同点是两者都能掉电存储数据

2:区别:

1)FLASH按扇区操作,EEPROM则按字节操作

2)FLASH写入时间长,EEPROM写入时间短

3)FLASH擦写次数少(10000次),EEPROM次数多(1000000次)

4)FLASH的电路结构较简单,成本低,EEPROM工艺复杂,成本高 

二:单片机的数据存储器不能用FLASH,因为: 

1:FLASH有一定的擦除、写入次数,一般的单片机的FLASH擦除写入次数的标称值是10000次. 

2:FLASH写入数据需要比较长的时间,大约需要4-6ms.而且写FLASH需要加上9V的高压,麻烦. 

三:至于E2PROM,可以作为数据存储器,但是单片机如atmega128一般用RAM作为数据存储器,因为E2PRM工艺复杂,成本高,适合于存储掉电保护的数据,而这类数据往往不需要存储太多.所以一般的单片机都没在内部集成E2PROM,需要的时候,可以让单片机外挂24C01一类的串行E2PROM.

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring用于定义Bean对象生命周期方法注解是@PostConstruct和@PreDestroy。 1. @PostConstruct:该注解用于标注一个初始化方法,该方法将在Bean对象创建后,且属性注入完成后执行。它可以替代传统的init-method属性。 2. @PreDestroy:该注解用于标注一个销毁方法,该方法将在Bean对象销毁前执行。它可以替代传统的destroy-method属性。 需要注意的是,@PostConstruct和@PreDestroy注解必须要与实现了InitializingBean和DisposableBean接口的方法配合使用,才能够实现Bean对象的完整的生命周期管理。例如: ``` @Service public class UserServiceImpl implements UserService, InitializingBean, DisposableBean { @Override public void afterPropertiesSet() throws Exception { // 在Bean对象创建后,且属性注入完成后执行 } @Override public void destroy() throws Exception { // 在Bean对象销毁前执行 } @PostConstruct public void init() { // 在Bean对象创建后,且属性注入完成后执行 } @PreDestroy public void cleanup() { // 在Bean对象销毁前执行 } // ... } ``` 上述代码中,实现了InitializingBean和DisposableBean接口的方法将会在Bean对象的创建和销毁阶段执行,@PostConstruct和@PreDestroy注解标注的方法也将会在创建和销毁阶段执行。需要注意的是,@PostConstruct和@PreDestroy注解标注的方法可以与实现了InitializingBean和DisposableBean接口的方法同时存在,Spring将会依次调用它们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值