VxWorks文件系统FAQ
2012-11-04
标签:

vxWorks文件系统(包括TFFS、dosFS等)的FAQ

1、TFFS的Flash容量限制

答:vxWorks5.4以前的版本限制Flash容量为40M,5.5版本限制容量为2048M。

2、TFFS能否像硬盘一样动态扩容

答:不可以,TFFS在每个block的管理头上都写了Flash总的容量,多于的空间会mount失败。

3、TFFS在操作过程中掉电会引起TFFS系统崩溃,是否有办法避免

答:可以修改sysTffs.c里面的函数sysTffsFormat的第4个参数vmAddressingLimit为0来避免绝大多数安全问题。

4、同一个片flash是否支持多个TFFS文件系统

答:风河不建议这样操作,要想支持也可以实现,但访问两个文件系统的任务必须同样优先级,否则会有冲突。

5、创建TFFS时,Flash大小对齐是否有限制

答:大小必须以2的正数次幂对齐。可以修改flsocket.c文件里面的flmap函数来取消此限制。

6、经常发现TFFS文件系统读写失败,失败后只有格式化才能继续使用。请问到底怎样读写文件才可将文件系统崩溃可能性降到最低?

答:对于TFFS的确存在很多问题,但90%以上都是由于掉电引起,例如复位以后mount失败等,很少有用着用着就不能用的情况。我也正在整理一个掉电安全的补丁。从操作上有一些建议,但是还是不能从根本上解决问题:

  • 使用8.3格式的文件名,全部大写;
  • 掉电之前使用ioctl(fd, FIOSYNC, 0)把cbio中的内容全部同步到flash中,并关闭所有文件;
  • 格式化参数的第4个参数使用0,不用缺省的0x10000;
  • 一片flash上只用一个TFFS;
  • 驱动中不能有任何引起任务挂起的操作,如信号量或者taskDelay等。

可能会用到的工具/仪表
相关文章
推荐文章
热门文章
章节目录
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号