FLASH难用
打个比方,EEPROM
类似于铅笔和橡皮,FLASH类似钢笔
EEPROM:
想修改数据,直接上橡皮擦
了要改的地方然后重新写就行
EEPROM可以按字节擦除
FLASH
想修改?好的,整页撕掉吧,撕完以后重新誊抄之前页原来的内容,要修改的部分在誊抄的时候顺便修改了
FLASH必须得按页擦除
就是说,想修改某一个字节,两个办法,
要么,先把这页上面的所有内容读到内存里面,在内存里面修改要修改的内容,然后擦掉这页,然后再写回去。缺点是占内存,FLASH一页有多大,就需要多大的内存来进行这个操作,现在一般FLASH一页4KB,等于是要4KB内存,对于嵌入式寸土寸金内存来说,不小了
要么,往后找一个空页,把要修改内容所在的页分段誊抄到空页上,在誊抄的时候顺便把要修改的改了,然后把之前的页面标记为空页,留给其他页要修改的时候用(用之前得擦除),占内存小了,但是麻烦,费时间
对于大部分初学者来说,无论FLASH的几千次~1万次擦写
,或者是EEPROM的百万次擦写,正常学习和使用都勾不到边,主要还是学习难度的问题
对于工业产品来说,大部分MCU
自带FLASH,如果擦写频次少,可以用FLASH来替代EEPROM存储可擦写的数据,这样少掉一个片子,少了PCB面积,节省端口,成本能降不少(大规模量产时),代价是程序复杂并且擦写不能太多(毕竟FLASH寿命少得多,频繁擦写可能得用磨损平衡方法,更加增加算法复杂度)
03-11
2103
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-09