[ZLG-ARM] 求写平衡的FFS驱动软件包。

[复制链接]
 楼主| wikee 发表于 2007-3-1 09:00 | 显示全部楼层 |阅读模式
我在学习用ARM7+NANDFLASH做FAT16的文件系统,已经做通了,但是NAND的驱动不太好,每次写一个扇区都要檫除一次同一个BLOCK。这样NANDFLASH寿命就减少了。通过了解,ZLG/FFS这个驱动具有写平衡算法,想参考参考。哪位有的大虾,给小弟发一份。谢谢。<br /><br />写平衡,就是对NNADFLASH的每个块写的次数大概都一样么?其实FAT操作的主要还是前面的FAT表区最多,不知怎么平衡呢?头痛啊。
 楼主| wikee 发表于 2007-3-1 09:08 | 显示全部楼层

email

我得email:wikee@163.com
eleven11 发表于 2007-3-1 09:23 | 显示全部楼层

可以购买

vxworks有tffs,等你有钱了,就可以什么都买,技术,人才都可以买,而你只要抓住市场,能拉项目就行,甚至连钱都可以有人垫,不过这是相当高级的人才了,阿尔卡特现在就是到处收购,看哪个做的好就把他买过来
赵崇伟 发表于 2007-3-1 09:24 | 显示全部楼层

tffs可不是谁都可以随便写出来的

应该说,你能够来这里请求帮助,已经说明你没有这个能力了,建议放弃
xwj 发表于 2007-3-1 09:49 | 显示全部楼层

写个类似的平衡机制并不是很难,只不过不是通用标准罢了

FLASH最好不要直接用FAT,<br />要用也得先做个带平衡机制的逻辑映射,再在此基础上加文件系统<br /><br />否则寿命很成问题<br /><br />LZ最好是先去找tffs等标准看看吧
eleven11 发表于 2007-3-1 10:03 | 显示全部楼层

写还是可以写的,不过太麻烦

要设计好的查询算法,要考虑掉电保护,ecc效验的保护……1,2句话说不清楚的,而且如果不是要把nandflash做u盘同时又要写平衡的或是fat文件系统底层系统级的文件交换的话,就不需要tffs这样一个转换层了,直接用yaffs就可以了,如果是要做转换层,那么公开可以得到(买)的稳定的好像只有vxworks的tffs,你还可以修改源码,在fat文件系统对fat表进行操作的时候才分配cache
 楼主| wikee 发表于 2007-3-1 11:13 | 显示全部楼层

感谢各位的回答!!

其实我作的没有那么复杂,只是不想对NAND檫除那么频繁。我的FAT文件系统和U盘都是跑通了的,整个系统功能也实现了。现在就是担心檫除太频繁这个问题,所以想着个例程看看。ZLG/FFS是我想到的最近的方法。tffs还没有了解过,现在就去查查看。<br /><br />楼上说的转换层,好像很复杂啊。我的文件系统和U盘不是同时对NAND进行读写的,当连到PC时,ARM的文件系统就停止了,防止冲突。这样应该不要转换层了吧?U盘其实只是对NAND直接读写而已,根本不需要文件系统的支持。<br /><br />我使用FAT无非是想当U盘用,如果是要存数据的话可用的格式就多了,我也就没那么头痛了。<br /><br />感谢各位的回答!!<br /><br />
eleven11 发表于 2007-3-1 12:28 | 显示全部楼层

如果你的flash本身是通过转换层写入的

就是像zlgffs,tffs这样的转换层,有些转换层是需要有已用块标记的,就是说你不用这个块的时候要设置释放标记,像fat系统中你就是修改源码,在释放簇链的时候同时释放flash的块,如果这时候你在pc端把flash当作u盘使用,比如说通过pc删除一个文件,虽然只是对扇区的读写操作,但是你必须捕获需要操作的扇区,判断是不是需要释放某一个块,如果你不这样操作,那么很快在转换层中就没有空闲的块可以分配了
eleven11 发表于 2007-3-1 12:30 | 显示全部楼层

所以u盘都是没有写平衡的

都是搞个缓冲区,当然做还是可以做的,如果系统记录的此处比较频繁,同时又想能像u盘那样操作,那么你就必须在转换层的接口中判断从pc要求请求的扇区是不是在fat区域,如果是,那么就检测这个扇区里面每12(16,32)位是否是0,是0就需要释放对应的簇,继而释放flash的块
 楼主| wikee 发表于 2007-3-1 13:52 | 显示全部楼层

楼上的提示记下了。

楼上的提点没能全部消化,但是我记下了。<br /><br />按你的意思是应该做一个表,记录那个块是用掉了的,当某个块不要时,必须把这个块置为未用。
赵崇伟 发表于 2007-3-1 15:42 | 显示全部楼层

那可不是1张表阿

是n张表!还要考虑可靠性问题,因为nand本身是不可靠短寿命的。<br />就这n张表互相之间还有紧密得联系,还要考虑意外断电恢复问题,还要考虑阿查找效率问题。<br />
 楼主| wikee 发表于 2007-3-2 08:29 | 显示全部楼层

楼上说得很恐怖啊。难道我们除了用TFFS外,就没别的方法比较实用了吗?这样我更想看看ZLG/FFS怎么做的了,哪位同志有请给我发一发吧。我了解到《软件实例二》有这部分内容,周末就去买来看看。周工的书我买的多到自己也数不清了,呵呵。自己想的想法总觉的不太可靠,看看别人怎么想的。<br /><br />昨天下了一个YFFS的源码和资料,准备研究研究,吸取一定经验。
赵崇伟 发表于 2007-3-2 09:38 | 显示全部楼层

呵呵,是很恐怖阿,吓唬吓唬你啊:)

这还不包括后期的软件查错,那就是非人的折磨!因为你不可能仿真出实际运行的环境,比如软件运行到什么位置断电,我们的项目就是用了一年的时间才查出“可能有”概率极小的软件逻辑错误,最后经过反复分析,确认逻辑设计有小小问题,也就是说那n张表的关系有问题,结论是必须推倒重来,最后决定项目无限期搁置。<br />另外nand手册有错误,而看出这些错误需要时间+耐心和ic设计和器件物理的知识。<br /><br />一般来说购买ffs是最可行的,商用的代码可靠性是经过检验的。当然如果你的目的就是学习,并不打算为公司创造效益就没所谓了。<br /><br />还有阿,fat文件系统是非常简单的东西,不能与ffs相提并论,复杂度不是一个数量级的。
xyele 发表于 2007-3-2 09:51 | 显示全部楼层

一般的数据采集系统,数据都有规律的话,根本没必要用FAT

&nbsp;&nbsp;&nbsp;我一直都没用FAT,直接写操作块、页,用铁电来记录对Nand&nbsp;Flash的操作指针......<br />&nbsp;&nbsp;&nbsp;一个ARM7系统,做太复杂了效率低,做得不好可靠性差...何必呢?<br />&nbsp;&nbsp;&nbsp;不用FAT,也一样当U盘操作
eleven11 发表于 2007-3-2 10:36 | 显示全部楼层

我没说做一张表

我只是说了要做你那样的设计,需要注意什么,需要对ffs和fat做哪些修改,ls的要是用u盘,或者sd卡什么都和nandflash交换数据的话,就知道fat+ftl的好处了
 楼主| wikee 发表于 2007-3-5 08:39 | 显示全部楼层

1

我的目的主要是ARM按FAT格式写到NANDFLASH中,然后当U盘一样读出数据,就像拷贝文件一样拷贝数据。
john1225cn 发表于 2008-2-29 09:42 | 显示全部楼层

大家好

嵌入式主板经常需要存储大量的数据。例如刷卡信息,运行参数采集,大量的记录等等。<br /><br />我在flash存储器上完成了一个SQL的数据库系统。软件兼容其他flash存储器。特点:<br /><br />&nbsp;<br /><br />1,高度结构化,使用非常容易,目前基于NOR&nbsp;flash,兼容其他flash。<br /><br />2,基于uc/os,实时性高,软件体积很小。<br /><br />3,实现了所有数据的存储平均磨损。<br /><br />4,标准的SQL语言操作。调用通过命令字符串就可以操作数据库。使用方便。<br /><br />5,可靠运行,经过0.5年的实际使用测试。<br /><br />6,功能举例:建立表,增删改查,容量测试,格式化等。<br /><br />7,简单的接口输出函数,可以通过标准接口输出打印的结果。<br /><br />QQ77668758<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部