打印
[STM32F1]

求在无操作系统情况下,在NAND上移植YafFS的说明及相关帮助

[复制链接]
1859|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
can123dao|  楼主 | 2015-1-26 20:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近小弟有个任务,要在NAND上移植个文件系统,以前没有做过这相关的东西,
看了一下,FatFS要做一些坏块管理,和擦写均衡的算法,不怎么适合NAND
据说YafFS比较合适在NAND上用。但资料基本上是在Linux下的,有说其direct可直接移植到裸机上
无操作系统情况下,在NAND上移植YafFS的说明,及相关问题都见得比较少。
论坛里有兄弟伙有相关经验或者资料能匀一点不。
在此先行谢过
沙发
airwill| | 2015-1-26 21:13 | 只看该作者
NAND 上保存数据, 要想可靠地保存数据, 不管有没有文件系统, 坏块管理自然的必要的
至于擦写均衡的算法,由于可避免过早的擦写寿命, 是有一定的好处的, 这个也有专门的算法代码参考, 并非一定要跟文件系统绑一起吧

使用特权

评论回复
板凳
can123dao|  楼主 | 2015-1-27 11:36 | 只看该作者
本帖最后由 can123dao 于 2015-1-27 16:32 编辑
airwill 发表于 2015-1-26 21:13
NAND 上保存数据, 要想可靠地保存数据, 不管有没有文件系统, 坏块管理自然的必要的
至于擦写均衡的算法,由 ...

坏块管理是一定要的。
在开始初始化时,通过读各个块的标志Byte,然后创建一个坏块表,在写的时候,如果碰到要写的地址在坏块内,就将要写的地址增加到下一个好块去。

page++;
if(page==64)
{
   do
   {
    block++;
    status=readblockindex();
   }
   while(status)
}

大概就是这样?
这应该写到“媒介多扇区写接口”diskio_wirte()里,还是NAND_WRITE()里?
这就是所谓的静态的坏块管理。如果要做得更好,就要在每次数据操作的时候都去读标志,以便及时更新坏块表是不?在使用过程中产生的新坏块,是怎么判断的?

使用特权

评论回复
地板
qqzhu222888| | 2017-6-23 19:21 | 只看该作者
楼主,我现在也在困惑这个问题,能加个qq请教一下吗?QQ号:993653406

使用特权

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

本版积分规则

36

主题

114

帖子

2

粉丝