一、获取 tffs 源代码
1、 请获取到最新的 tffs 源代码或者库文件,如果从其它地方获取的,不保证后面能够正常使用该库。
├─h
│ backgrnd.h
│ dosformt.h
│ fatlite.h
│ flbase.h
│ flbuffer.h
│ flcustom.h
│ flflash.h
│ flsocket.h
│ flsysfun.h
│ flsystem.h
│ fltl.h
│ pcic.h
│ reedsol.h
│ stdcomp.h
│ tffsDrv.h
└─src
└─tffs
backgrnd.c
dosformt.c
fatlite.c
flbase.c
flflash.c
flparse.c
flsocket.c
fltl.c
ftllite.c
Makefile
reedsol.c
ssfdc.c
tffsDrv.c
tffsLib.c
nftllite.c
2、 修改头文件
进入到 h 文件夹下,打开 flcustom.h, 将其中的宏定义修改:
#defineSECTOR_SIZE_BITS 11
二、编译tffs组件库
1、 进入到target\lib\arm\ARMARCH5\common 文件夹下,删除 libtffs.a 以及文件夹 objtffs。
2、 进入到 target\src\drv 路径下,将原始的 tffs 文件夹改名为 back, 然后将获取到的 tffs 文件夹拷贝到该路径下。
3、 进入到 target\h 路径下,将原始的 tffs 文件夹改名为 back, 然后将获取到的 h 文件夹拷贝到该路径下,并改名为 tffs。
2012-11-19 23:29 <DIR> .
2012-11-19 23:29 <DIR> ..
2000-11-18 19:50 3,730 backgrnd.c
2000-11-18 19:50 16,089 dosformt.c
2012-11-19 23:35 109,802 fatlite.c
2001-12-08 09:09 2,746 flbase.c
2011-12-25 15:18 14,722 flflash.c
2000-11-18 19:50 2,705 flparse.c
2001-10-01 22:45 20,218 flsocket.c
2000-11-18 19:51 2,817 fltl.c
2001-10-25 02:28 73,426 ftllite.c
2012-11-19 22:57 1,018 Makefile
2000-11-18 19:51 25,211 reedsol.c
2001-10-01 22:45 66,028 ssfdc.c
2012-11-19 23:08 29,191 tffsDrv.c
2000-11-18 19:52 9,340 tffsLib.c
2013-04-13 21:55 69,866 nftllite.c
15 个文件 411,048 字节
2 个目录46,717,214,720 可用字节
D:\Tornado2.2ARM\target\src\drv\tffs>
假设,在 ARM 926ejs 平台上进行该组件的编译,则执行如下的命令:
D:\Tornado2.2ARM\target\src\drv\tffs>make CPU=ARMARCH5TOOL=gnu
编译完毕,如下:
D:\Tornado2.2ARM\target\src\drv\tffs 的目录
2012-11-19 23:29 <DIR> .
2012-11-19 23:29 <DIR> ..
2000-11-18 19:50 3,730 backgrnd.c
2012-11-19 23:30 34,005depend.ARMARCH5gnu
2000-11-18 19:50 16,089 dosformt.c
2012-11-19 23:35 109,802 fatlite.c
2001-12-08 09:09 2,746 flbase.c
2011-12-25 15:18 14,722 flflash.c
2000-11-18 19:50 2,705 flparse.c
2001-10-01 22:45 20,218 flsocket.c
2000-11-18 19:51 2,817 fltl.c
2001-10-25 02:28 73,426 ftllite.c
2012-11-19 22:57 1,018 Makefile
2000-11-18 19:51 25,211 reedsol.c
2001-10-01 22:45 66,028 ssfdc.c
2012-11-19 23:08 29,191 tffsDrv.c
2000-11-18 19:52 9,340 tffsLib.c
2013-04-13 21:55 69,866 nftllite.c
15 个文件 411,048 字节
2 个目录 46,717,214,720 可用字节
D:\Tornado2.2ARM\target\src\drv\tffs>
上述多了一个 depend.ARMARCH5gnu 文件,同时在target\lib\arm\ARMARCH5\common 文件夹下重新更新了 libtffs.a 库文件。
三、获取 NAND FLASH 驱动源代码
获取到 NAND FLASH 驱动源代码,然后集成到你的开发 BSP 包中。确保当前的驱动源代码是经过测试发布的。
四、修改 BSP
修改你的 BSP 文件,如下:
1、 打开 config.h 文件,如果之前没有定义 INCLUDE_TFFS,则你需要打开该宏,否则,确保该宏是打开的状态。
2、 打开 sysLib.c 文件,在里面增加对以下几个文件的包含:
#ifdef INCLUDE_TFFS
# include "nandMtd.c" /* NAND FLASH 驱动源代码 */
#endif /* INCLUDE_TFFS */
五、编译系统
1、 如果是使用建立工程来编译系统映像,则需要在内核配置中打开INCLUDE_TFFS 组件,然后保存,重新编译,最终的系统映像将会自动加载 tffs 驱动,并且以“/tffs0”为设备名挂载文件系统。
2、 如果是在命令行下编译系统映像,则需要等系统启动后,手动执行如下的操作:
-> tffsDrv
-> usrTffsConfig 0,0,”/tffs0”
在执行上述第一步之前,建议使用如下的命令测试驱动挂载成功与否:
-> tffsShow
如果打印显示 NAND FLASH 设备的信息,则表明驱动加载成功,否则失败,请查找原因。
在执行上述第二步后,如果提示失败,建议执行格式化的操作,只需要操作一次即可。
-> sysTffsFormat