这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [求助]调试TFFS的几个问题!大家帮忙啊,谢谢!

共2条 1/1 1 跳转至

[求助]调试TFFS的几个问题!大家帮忙啊,谢谢!

菜鸟
2005-04-27 08:09:58     打赏

大家好,我想请教一下调试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,这样格式化失败了。

这种现象我想是扇区的对应关系没有做好,但是不知道该在哪里配置?




关键词: 求助     调试     几个问题     大家     帮忙     谢谢     扇区    

菜鸟
2005-04-27 17:38:00     打赏
2楼

补充一下以上情况的打印信息:

这是我刚刚又实验一次的结果,比较实际。 当第一个写入的扇区SA4被擦除后,SA8的操作也失败了,但是中间进行了unit header的填写。我将这部分unit header与amine写的VxWorks程序开发实践的199页的一个图的unit header比较,发现个别字节不同,不知道这是跟TFFS的版本有关,还是和我写的程序有关啊?

[VxWorks Boot]: d 0x40010000 40010000: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40010010: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40010020: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40010030: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40010040: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40010050: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40010060: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40010070: ffff ffff ffff ffff ffff ffff ffff ffff *................* [VxWorks Boot]: d 0x40020000 40020000: 1303 4349 5346 0000 4654 4c31 3030 0001 *..CISF..FTL100..* 40020010: 0200 0000 0100 0910 0000 1f00 00fe 1c00 *................* 40020020: 0000 0100 1e00 00ff 0000 0000 0000 0000 *................* 40020030: 4400 0000 ffff ffff ffff ffff ffff ffff *D...............* 40020040: ffff ffff 3000 0000 3000 0000 ffff ffff *....0...0.......* 40020050: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40020060: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40020070: ffff ffff ffff ffff ffff ffff ffff ffff *................* [VxWorks Boot]: d 0x40030000 40030000: 1303 4349 5346 0000 4654 4c31 3030 0001 *..CISF..FTL100..* 40030010: 0300 0000 0200 0910 0000 1f00 00fe 1c00 *................* 40030020: 0000 0100 1e00 00ff 0000 0000 0000 0000 *................* 40030030: 4400 0000 ffff ffff ffff ffff ffff ffff *D...............* 40030040: ffff ffff 3000 0000 3000 0000 ffff ffff *....0...0.......* 40030050: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40030060: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40030070: ffff ffff ffff ffff ffff ffff ffff ffff *................* [VxWorks Boot]: d 0x40040000 40040000: 1303 4349 5346 0000 4654 4c31 3030 0001 *..CISF..FTL100..* 40040010: 0400 0000 0300 0910 0000 1f00 00fe 1c00 *................* 40040020: 0000 0100 1e00 00ff 0000 0000 0000 0000 *................* 40040030: 4400 0000 ffff ffff ffff ffff ffff ffff *D...............* 40040040: ffff ffff 3000 0000 3000 0000 ffff ffff *....0...0.......* 40040050: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40040060: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40040070: ffff ffff ffff ffff ffff ffff ffff ffff *................* [VxWorks Boot]: d 0x40050000 40050000: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40050010: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40050020: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40050030: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40050040: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40050050: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40050060: ffff ffff ffff ffff ffff ffff ffff ffff *................* 40050070: ffff ffff ffff ffff ffff ffff ffff ffff *................* [VxWorks Boot]:


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]