嵌入式数据库
Flash基础
- FLASH分层结构为块(Block)>扇区(Sector)>页(Page), 以LPC55S69-EVK为例,其包含一个块(Block),块大小为640K,每个块包含20个扇区(Sector),扇区大小为32K,每个扇区包含64个页(Page),页大小为512B
- FLASH写入,先判断如果不是FF就要先擦除. 写入只能把数据(bit)从1改为0;擦除只能把所有数据(bit)从0改为1. 所以某些数据更新的时候有备份、再写入这个步骤
- 原来flash芯片不支持覆盖写,只能在擦除过的区域进行写操作,想要重写数据,必须进行擦除,而且擦除一般是按照扇区或者是块进行擦除。根本原因其实是flash芯片的写操作只能将1变为0,而不能将0变为1,擦除之后,flash中是全1的状态,若想将0变为1则只能通过擦除操作。所以严格来说不是不支持覆盖写,因为对于特定的数据(只要不涉及0变1)也可以进行覆盖写。
Nor Flash 和 Nand Flash的差别
- 使用寿命上,nand flash的擦除次数是nor的数倍。而且nand flash可以标记坏块,从而使软件跳过坏块。nor flash一旦损坏便无法再用
- 结构:Nor Flash和Nand Flash的存储单元结构不同。Nor Flash采用并行结构,每个存储单元都有自己的地址,数据可直接读取。而Nand Flash采用串行结构,数据必须通过多级地址转换才能读取。
- 读写速度:Nor Flash的读写速度比Nand Flash快,因为它可以直接访问每个存储单元,而Nand Flash需要多级地址转换,因此读写速度较慢。
- 寿命:Nor Flash的寿命比Nand Flash长,因为它可以进行单个存储单元的擦写和读取,而Nand Flash只能进行整块擦写和读取,容易出现坏块,缩短寿命。(nandflash按块来擦除,按页来读,norflas

本文解析了AliOS Things中的KV组件工作原理,介绍了Flash的基础知识、NorFlash与NandFlash的区别,并详细探讨了KV组件如何实现初始化、写入、读取、删除及垃圾回收等功能。
最低0.47元/天 解锁文章
1747





