我的flash是2048 bytes * 64 pages * 4096 blocks = 512MB积累了若干TFFS的问题,烦请高手帮忙看看。
1.我得知VxWorks5.5的TFFS不再支持NAND Flash了,这一点我也得到了风河的确认,可是我在代理商那里看5.4中也没有相应的TFFS文件。我觉得应该是缺少一个nftllite.c文件。不知道谁那里有该文件,不知道是否方便传给我一份。
2.同时我在VxWorks5.5中看到了一个ssfdc.c的文件,里面的处理类似于nand flash的操作,应该修改一下就可以用。这个我还没有试成功。不知道和nftllite.c是否有差别,能否直接用。
3.现在我的做法是,将nand flash当作nor flash来处理,即将不连续的地址映射为连续的地址空间,而不用nand flash后的空闲区。这样格式化、挂载的都成功了。只是在读写文件时候出现异常:
1)将4096块格式化后,写文件没有问题(读取flash相应的地址,有写入的数据,这就是说的确写入了文件),但是却找不到文件,但读函数也并没有报错,表现就是读出来的数据没有内容(忘了是ff还是00了)。或者只有第一个文件可以读出来,第二个文件无法读取。
2)如果只格式化16、256个块的话(即让系统认为flash只有这么多块),读写均成功,两个文件也一样。
3)怀疑是跟FAT系统有关系,是不是FAT12 16没有选好啊?需要在什么地方配置吗?簇的大小是否有限制呢?
4)另一个就是我的写函数中并没有对overwrite进行处理,上层传下来的overwrite是否表示我需要将整块的数据都读取出来然后在将数据修改后,擦块,然后再整块写入吗?还是这些机制都不用我来处理呢?
目前就是以上若干问题,谢谢版主赐教,不胜感激!