打印
[应用相关]

nand_if.c文件是不是提供了nand flash的写平衡呀?

[复制链接]
4205|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tsx1983|  楼主 | 2009-5-31 23:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看了一下,没看明白它的实现机制是什么样的?有没有介绍这个实现方法的**?
沙发
Again_gyf| | 2009-6-1 15:07 | 只看该作者

给个文件地址?没看到

使用特权

评论回复
板凳
ijk| | 2009-6-1 16:21 | 只看该作者

nand_if.c文件

  nand_if.c文件,似乎提供了比较简单的nand flash的写平衡(wear leveling)。

使用特权

评论回复
地板
skyler| | 2009-6-1 17:58 | 只看该作者

有wearleveling

刚稍微看了一下,

ST的例子写得不错,的确有wearleveling
楼主主要把LUT理解了,其实也就是一个逻辑-物理对换表,对flash管理就会比较清晰了.
不过这个并非globa wearleveling,而是以zone为单位的.当然你可以改为以chip为单位,但需要更大的ram.

另外最好不要将此代码用于MLC flash,对于MLC会更复杂一些.

使用特权

评论回复
5
tsx1983|  楼主 | 2009-6-1 18:26 | 只看该作者

写平衡基本原理我是懂的,就是想确认一下到底好不好使

写平衡我研究过周立功的代码,但是一直没调成功,一调用函数就HardFault。后来就没时间去调了。偶然看见ST也有提供了这个文件,但是看见他的LUT才1024就失望了,也没时间去研究他到底是如何实现的,所以不敢贸然使用它.
我的nand flash是三星的K9F系列。如果ST的这个好使,我打算 把它改到K9F系列上去,再移植个FATFS什么的

使用特权

评论回复
6
skyler| | 2009-6-1 20:30 | 只看该作者

几点建议

zlg的代码我没看过,楼主可以传上来吗?或告知链接.

LUT完全可以自己去设计,例子中使用是u16,你可以自己定义为u8,算法适当做修改.要做globa wearleveling要视你的ram有多少,是否舍得.
其实有一些开源代码是globa的,要研究的话可以看看:
http://www.linux-mtd.infradead.org/doc/ubi.html

补充一下上面说此代码不适于mlc的原因:没有ecc,没有坏块替换,不能支持顺序写的nand...

建议如果你要在系统中用数据存储,何不直接用sd卡?将nand flash管理解放出去,丢给卡去处理吧.

使用特权

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

本版积分规则

25

主题

160

帖子

0

粉丝