norflash移植JFFS2文件系统更深入问题
硬件平台是S3C2510,8M norflash为程序存储器,8M norflash为数据存储器,根文件系统为romfs,系统启动后挂载jffs2文件系统。
JFFS2文件系统的移植可以说是完成了,首先可以挂载分区到“/mnt”目录,而且可以读写文件,可以正常
卸载再挂载。而且也支持eraseall命令和erase命令。似乎一切都是正常的。(具体移植过程也是参看网上的资
源)
但是近来经过大量的写文件操作,发现系统速度会越来越慢。(表现为运行灯闪烁不均匀,可以明显观察
到对文件操作时,运行灯就变慢了,当然这一点还是在可以理解的。)首先我们的系统是一个大循环方式工作
,当然如果一个写文件程序或访问JFFS2不能快速返回,将导致整个循环周期变长。表现为运行灯变慢。
上个问题还是可以解释的,另一个问题我一直没有合理的解释。系统断电后(手动断电或复位)重启,在
mount JFFS2 文件系统时出现很多的DATA CRC 错误。导致根本无法mount上JFFS2文件系统。可以说这个文件系
统已经挂了。
问题是,在断电之前,对文件的操作,系统未报告任何错误。为什么重启后会一下很多错误。
jffs2_scan_inode_node(): Data CRC failed on node at 0x001af628: Read0xbbb3577d, calculated
0x71db717b
导致系统无法运行其它程序。 第一个问题是因为:jffs的一个工作原理造成的,就是说,她首先要将数据写到没有数据的地方,旧的数据也做了标示,但是事实上没有删除,当jffs彻底没有数据了,他就会开始查找各个节点,整理删除,这个过程就比较慢了!
第二个问题好像是因为你的数据节点错误造成的,看到你的那个东西,感觉你可以检查一下这个:
制作jffs的时候,有一个-e的选项,是说扇区大小,你可以参考datesheet,看看你的那个具体应该是多少!有一些norflash有大小区两个部分!
mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 0x10000 --pad=0x500000 -s 0x200 -n
页:
[1]