KanoRan
这个作者很懒,什么都没留下…
展开
-
NAND Flash虚拟层坏块管理机制
LML_BadBlkManage()函数首先获取新的空闲块用来代替坏块,再将坏块中的有效数据拷贝到空闲块中(恢复坏块中的有效数据),最后往坏块中写入坏块标志,再写入坏块标志前需要判断该逻辑块是否确实为坏块,避免“误杀”;(2)、然后调用_RestorePageDate()函数将坏块中的数据读取出来转存到新的空闲块中,如果拷贝数据失败,则调用_MarkBadBlk()函数来标记空闲块为坏块;(1)、首先设置源和目的页的结构参数,包括bitmap和页数据缓存等,用于下一步的拷贝数据操作;原创 2024-09-30 22:43:16 · 73 阅读 · 0 评论 -
NAND Flash虚拟层垃圾回收机制
free2data_simple_merge()函数首先根据逻辑块获取与之对应的数据块和日志块,根据日志块的页索引表来判断日志块中的有效页,扫描日志块中的每个逻辑页,若对于一个有效页,则将有效页的数据复制到空闲块中,若对应一个无效页,则将逻辑页对应数据块中的相应页的数据复制到空闲块中,最后擦除日志块和数据块并设置为空闲块,而原来的空闲块设置为数据块并与逻辑块对应;(2)、然后根据日志块的LastUsedPage为起始地址,调用PHY_PageCopyback()函数从数据块相同位置复制数据到日志块中;原创 2024-09-30 22:41:53 · 59 阅读 · 0 评论 -
NAND Flash虚拟层索引表机制
NAND Flash虚拟层的索引表用于建立逻辑块与数据块、日志块之间的关系,用于NAND Flash虚拟层在运行过程中的读写、擦除操作;由于NAND Flash虚拟层采用集中索引的方式,因此在NAND Flash虚拟层启动时需要在NAND Flash存放索引表区域扫描并确定NAND Flash中存放的索引表是否有效,若无效则需要重建索引表;原创 2024-09-30 22:41:04 · 114 阅读 · 0 评论 -
NAND Flash虚拟层初始化
在整个NAND Flash初始化过程中,其主要过程由NAND_Init()函数来完成的,因此以下以NAND_Init()函数作为入口,对NAND Flash虚拟层初始化进行全面分析: NAND_Init()函数首先调用NAND_PhyInit()函数来对NAND Flash物理结构进行初始化,主要进行硬件初始化和分析并获得NAND Flash的物理结构参数,再调用FMT_Init()函数通过获取到的NAND Flash物理结构参数构建NAND Flash逻辑虚拟结原创 2024-09-30 22:19:33 · 101 阅读 · 0 评论 -
NAND Flash虚拟层设计概述
虚拟层初始化NAND Flash虚拟层的建立需要对NAND Flash虚拟层进行初始化,根据相应的NAND Flash的物理结构参数建立逻辑结构,并建立索引表来管理逻辑虚拟层与物理虚拟层之间的联系;虚拟层初始化主要完成对NAND Flash虚拟层硬件初始化、扫描NAND Flash以获取其物理结构参数、NAND Flash虚拟层索引表的查找与建立、NAND Flash逻辑虚拟层初始化、NAND Flash虚拟层重要数据结构的初始化,例如索引表、缓存页等结构;原创 2024-09-30 18:24:18 · 45 阅读 · 0 评论 -
NAND Flash虚拟层研究基础
Flash是存储芯片的一种,又称为闪存,属于非易失性存储设备,可以通过特定程序可以修改里面的数据(可编程的),全名称为Flash EEPROM Memory;它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。近年来,Flash全面替代ROM在嵌入式系统中的地位,用作存储BootLoader以及操作系统或者程序代码,或直接当做硬盘使用;原创 2024-09-30 18:09:43 · 165 阅读 · 0 评论