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

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

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(随机取得),也不可以。

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);
}
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 | |
【分享评测,赢取加热台】教你五分钟本地部署蒸馏版本的DeepSeekR1-7B被打赏12分 | |
【换取手持示波器】蓝牙音箱更换电池被打赏8分 | |
【换取手持示波器】鼠标更换微动开关被打赏10分 | |
【我要开发板】4.传感器移植被打赏50分 |