|  | 
 
| 关于tffs文件系统的一些经验总结-hongwind 关于tffs文件系统的一些总结:
 
 感谢各位朋友的努力,前段时间完成了trueffs文件系统,使用的是sst39vf160,2Mbytes空间,
 现在系统运行良好。
 使用的是torando2.2 for arm!
 
 下面就一些问题作说明:
 首先要做的就是搞清楚自己的flash配置在什么位置,需要修改你的bsp!
 这是很多人犯的错误,不修改你那里可以找得到呀。
 wrsbcarm7.h
 
 /***********************************************************
 *
 * -> EXTDBWTH : Memory Bus Width register
 */
 /*fixed*/
 #define DSR0 (1<<0)   /* ROM0, 0 : Disable, 1 : Byte etc.*/
 #define DSR1 (2<<2)   /* ROM1 */ 2--16bits
 #define DSR2 (1<<4)   /* ROM2 */
 
 /***************************************************************************
 * -> ROMCON1 : ROM Bank1 Control register, Mailbox Interface
 */
 #define ROMBasePtr1   (0x210<<10)         /*=0x02100000 noncacheable area fixed*/
 #define ROMEndPtr1   (((0x200000>>16)+0x210)<<20)    /*=0x02300000*/
 #define PMC1      0x0       /* 0x0=Normal ROM, 0x1=4Word Page etc.*/
 #define rTpa1      (0x0<<2)    /* 0x0=5Cycle, 0x1=2Cycle etc.*/
 #define rTacc1     (0x6<<4)    /* 0x0=Disable, 0x1=2Cycle etc.*/
 #define rROMCON1    (ROMEndPtr1+ROMBasePtr1+rTacc1+rTpa1+PMC1)
 说明,这里配置在0x02100000,那么文件中使用的flash_address应该是 0x2100000+4000000=6100000
 这样访问的地址就放在了noncache区域。
 
 C:\Tornado2.2\target\config\bootffs\sysTffs.c
 #define FLASH_BASE_ADRS 0x06100000    /*33M, 2100000+4000000=6100000 no cache */
 #define FLASH_SIZE 0x00200000  /*2M bytes*/
 
 还有需要添加的一个定义,修改这个文件。
 C:\Tornado2.2\target\h\tffs\stdcomp.h
 /* MTD Identify Routines */
 FLStatus sstMTDIdentify (FLFlash vol);/*fixed by shine*/
 FLStatus amdMTDIdentify (FLFlash vol);
 FLStatus i28f008Identify (FLFlash vol);
 FLStatus i28f008BajaIdentify (FLFlash vol);
 FLStatus i28f016Identify (FLFlash vol);
 FLStatus cdsnIdentify (FLFlash vol);
 FLStatus doc2Identify (FLFlash vol);
 FLStatus cfiscsIdentify (FLFlash vol);
 FLStatus cfiAmdIdentify (FLFlash vol);
 FLStatus flwAmdMTDIdentify (FLFlash vol);
 
 关于编译时候的错误:会有很多的重定义错误,那就是注意在你的makefile中只要添加
 
 C:\Tornado2.2\target\config\bootffs\Makefile
 MACH_EXTRA   = sngks32cEnd.o sst39vf160mtd.o
 在C:\Tornado2.2\target\config\bootffs\sysTffs.c中有如下定义。
 #ifndef DOC
 #include "tffs/tffsConfig.c"
 #endif /* DOC */
 如果你的硬件配置没有问题的话,编译通过后启动应该有这样的信息,
 Debug: entering SST MTD identification routine.
 
 unlockAddr1 = 0x610aaaa, unlockAddr1 = 0x6105554
 
 flashPtr = 0x6100000
 
 offSet = 0x6100002
 
 vol.type = 0x2782  /这里错误通常是由于硬件问题,检查你的器件引脚
 
 Debug: begin operation function.
 
 Debug: Identified sst39vf160 media. 说明找到了设备。
 
 下面可以执行格式化配置操作。
 然后-〉devs可以可以看到你的设备。
 执行copy命令的时候注意你的格式
 copy "****","*****"
 否则容易出错呀。
 | 
 |