这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » Probelms about TFFS of VxWorks

共19条 2/2 1 2 跳转至
菜鸟
2002-08-09 06:03:00     打赏
11楼
我在Shell命令行中键入 tffsShow 显示 communication error 这是不是表示 MTD不对呢。

菜鸟
2002-08-09 07:22:00     打赏
12楼
pBootDev = tffsDevCreate (drive, 0) 这个drive的取值我没有看懂, 手册上说"drive决定于socket注册的顺序" 你的pBootDev=tffsDevCreate(8,0)中8根据什么确定的? 串口显示dosFsLibInit failed!, 你可以查查dosFsLibInit的帮助, 看看失败的原因 文件系统初始化失败, devs也就看不见tffs

菜鸟
2002-08-09 07:23:00     打赏
13楼
我没太看懂xiaohua的步骤. 我觉得只要在config.h里定义了: #define INCLUDE_TFFS #define INCLUDE_DOSFS 的话,象tffsDrv,dosFsInit这些函数在系统引导过程中都会自动被调到的,重复调用 没准儿会出问题. tffsDevCreate和dosFsDevInit加起来就相当于usrTffsConfig,也 没必要反复调用,我建议用usrTffsConfig就行了, 而在此之前必须先format. 也就是 说,需要在shell里敲的函数只有两个: tffsDevFormat 0,0 usrTffsConfig 0,0,"/tffs/" 次序不能错.

菜鸟
2002-08-09 08:37:00     打赏
14楼
ryansheng说得对, 如果定义拉INCLUDE_TFFS和INCLUDE_DOSFS usrRoot中会自动调用dosFsInit, dosFsLibInit等dos初始化相关函数 shell中出现的dosFsLibInit出现的失败, 也许就是不允许重复初始化 usrRoot中也会调用tffsDrv(), tffsDrv也只能调用一次 就剩下: tffsDevFormat(?,0) pBootDev=tffsDevCreate(?,0) dosFsDevInit("tffs",pBootDev,0) 关键就是如何设tffsDriveNo(?), 你上面 tffsDevFormat和tffsDevCreate所用的drive号不一致 也许可以用tffsShow找到这个号 也就是sysTffsInit中调用xxxRegister的顺序号 如果你只注册了一种socket, 用0就行 你应该使用rfaRegister, rfa代表“resident flash array” 在rfaRegister应该可以注册多个Flash芯片或多个地址空间, 对应不同的drive号 你应该参考sockets/下ARM PID-7T的sysTffs.c

菜鸟
2002-08-09 17:19:00     打赏
15楼
I am Sorry! 我一开始就是向您二位说的一样,但没成功。 1.修改Config.h #define INCLUDE_TFFS #define INCLUDE_DOSFS 2.修改sysTffs.c defien INCLUDE_TL_FTL #define INCLUDE_MTD_AMD 3.修改makefile MACH_EXTRA=sysTffs.o 4.在修改过的BSP上新建一个Bootable工程,里面已经加了TFFS和DOSFS组件,重新Build。 然后通过网络重启。 5.Shell Command: tffsDevFormat 0,0 usrTffsConfig 0,0,"/tffs/" 两个命令都返回-1 tffsShow 显示communication error 根据我的理解driver应该是0或者1,我都试过,不行,才改用8(随机取得),也不可以。

菜鸟
2002-08-09 17:27:00     打赏
16楼
void tffsShow ( int driveNo /* TFFS drive number */ ) { PhysicalInfo info; FLStatus status; if (tffsSocket[driveNo] == NULL) { printf ("%d: ---- no socket interface installed ----\n", driveNo); return; } status = tffsRawio (driveNo, TFFS_GET_PHYSICAL_INFO, (int)&info, 0, 0); if (status != OK) { printf ("%d: **** communication failed with error %d ****\n", driveNo, status); >应该是这一步出错拉 return; } printf ("%d: socket=%s: ", driveNo, tffsSocket[driveNo]); printf ("type=0x%x, unitSize=0x%x, mediaSize=0x%x\n", info.type, (UINT)info.unitSize, (UINT)info.mediaSize); }

菜鸟
2002-08-09 17:29:00     打赏
17楼
tffsShow应该带参数 试试tffsShowALL

菜鸟
2002-08-10 06:44:00     打赏
18楼
这就怪了, 可能问题还是出在sysTffs.c里, 再检查一下配置吧, 可以对照我7号的贴子. 这块flash在shell下能直接读出内容么? 把片选的wait state放长一点试试. 另外要用tffsShow的话可能在config.h里要#define INCLUDE_SHOW_ROUTINES

菜鸟
2002-08-12 21:43:00     打赏
19楼
小弟谢谢各位的帮助,虽然还没成功,可是我有别的事情要马上做,我以后还会继续的,如果成功了,我一定写一个小总结给大家汇报一下! 再次谢谢各位!鞠躬!

共19条 2/2 1 2 跳转至

回复

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