大家好,我想请教一下调试TFFS时格式化flash的几个问题。
我第一次接触TFFS,看了一些有关TFFS原代码部分,在问题过程中还有一些小的疑问,希望大家能予以指点,谢谢啊!
环境:T2.02 for PowerPC,AM29LV160DB
问题1:在格式化flash过程中,擦除的扇区和写入unit header扇区对应不一致,请问如何解决?
我用的flash是AM29LV160DB,扇区0-3为大小不规则的扇区,总大小为64K字节,后面的扇区4-35为大小均为64K字节的扇区,我参照AMINE写过的一篇文档,以跳过前面不规则的64K字节的方式来建立TFFS,所以格式化也是格式后面规则的扇区。
在格式化的时候,需要进行31次对unit单元的格式化操作(这里,我有一些疑惑,在哪里可以进行设置这个31次的unit单元操作的次数应该和一个unit单元对应于几个flash的物理扇区),我所看原代码的理解是一个unit单元对应于一个flash的物理扇区。
对于第一个扇区,首先擦除扇区,然后将初始化好的unit header数据写入该扇区中;而对于以后的扇区,先是擦除扇区,然后是读第一个扇区的unit header数据,用这个unit header数据写入需要进行已经擦除的扇区中。
我现在的情况是第一步就是擦除扇区0,但是写入unit header的扇区却是扇区4,这样往后做循环到第四次的时候,就会将扇区4擦除,这样就导致不能读出第一个擦出扇区(扇区4)的数据来写入扇区8,这样格式化失败了。
这种现象我想是扇区的对应关系没有做好,但是不知道该在哪里配置?