打印

GD的 SPI NANDFLASH 有资料没啊? 磨损平衡和坏块处理

[复制链接]
3684|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huarana|  楼主 | 2016-10-8 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近准备用单片机挂spi falsh做数据存储,  需要跑文件系统 (单片机充当usb作为大容量存储)。

数据量大约几十MB   所以就准备用spi nand  ,但是发现平衡和坏块这里驱动都没有相关资料 - -!

有点头疼
沙发
eddy-zhong| | 2016-10-9 11:14 | 只看该作者
加我,我帮你找你需要的资料

使用特权

评论回复
板凳
wmxx1314| | 2016-10-14 15:36 | 只看该作者
还能跑NAND FLASH 哦。一般不是nor flash吗。

使用特权

评论回复
地板
_Gaga| | 2016-10-14 17:43 | 只看该作者
SPI串行flash可以用华邦的W25QXX系列,norflash不需要管理坏块

使用特权

评论回复
5
huarana|  楼主 | 2016-10-14 21:29 | 只看该作者
_Gaga 发表于 2016-10-14 17:43
SPI串行flash可以用华邦的W25QXX系列,norflash不需要管理坏块

容量太小

使用特权

评论回复
6
_Gaga| | 2016-10-15 17:09 | 只看该作者
坏块与平衡擦除这方面的资料估计比较少,但是也可以自己用代码去实现,具体方法如下:

1:将flash分为两个区,主存储区和坏块替换区,可以用5%的存储空间用来做替换区 《 主存储区地址:0.1.2.3.4.5.6.7 .......4000 , 替换区地址:4001.4002.4003.....4200

使用特权

评论回复
7
_Gaga| | 2016-10-15 17:11 | 只看该作者

2:向NANDFLASH写数据时可以直接写入NANDFLASH主存储物理地址,写入完成后读取校验,校验0K则OK,反之将当前出错的块数据写入替换区然后将当前逻辑地址映射到替换区地址,建立一个地址映射表。

使用特权

评论回复
8
_Gaga| | 2016-10-15 17:18 | 只看该作者
以上就是坏块管理,关于平衡擦除看如下:

正常情况下数据写入是按照扇区顺序写入如:地址0,地址1,地址N。。。。 当使用平衡擦除时可以这样做,每次格式化时将数据写入的最后扇区地址映射到起始地址,然后从此地址顺序写入数据,
如何上一次数据最后一次写入的扇区地址是:1000扇区,那么正常情况下格式化后地址又是从新从0写入数据,但是因为要考虑平衡擦除就需要在格式化的时候计算出上一次最后写入的扇区地址(1000),在格式化的时候将1000映射为起始扇区,那么数据的写入将会从1000扇区开始,直到下次格式化时重新计算结束扇区在做映射。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

1122

帖子

12

粉丝