这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 关于TFFS文件系统

共49条 3/5 1 2 3 4 5 跳转至
菜鸟
2007-04-20 04:52:00     打赏
21楼

总结经验帖:
**在VxWorks中作上支持FTP上传和下载功能的TFFS, 用FTP工具(如WS-FTP)进行上传和下载,对于*.doc文件作了一些尝试,在TFFS中文件名字支持汉字、字母或者二者混合的形式,但是对文件名有一定的长度限制,过长将不能正常上传和下载!
例如:
上传和下载文件 S3C44B0X移植笔记.doc、S3C44B0X_VxWorks_BSP.doc、测试.doc可以成功,但是对于文件 调试准备步骤.doc、S3C44B0X VxWorks BSP 移植笔记.doc却不能够成功

**文件长度会导致传输类型的转变,因此也就损坏了上传文件
例如:上传文件S3C44B0X VxWorks BSP 移植笔记.doc显示上传成功,但FTP LIST却是文件名为:S3C44B0X 文件格式为:Binary file 文件大小不变的文件!

**具体限制文件长度是多少,还请高手们指点!


菜鸟
2007-04-20 05:49:00     打赏
22楼

哦,,,,我们一步一步来看。

226 Transfer complete
MKD webs
500 Command not recognized

!!!!!你的FTP服务器怎么连MKD这个命令都不能识别呢,,,FTP服务器有问题。

XMKD webs
500 Command not recognized

!!!!!XMKD这个命令VxWorks的FTP服务器确实不识别的。。。。正常现象。


我又随便进入一个不存在的文件夹web,显示:
CWD web
250 Changed directory to "/data/web"
PWD
257 Current directory is "/data/web"
PASV
227 Entering Passive Mode (192,168,0,145,4,1)
connecting data channel to 192.168.0.145:4,1(1025)
data channel connected to 192.168.0.145:4,1(1025)
LIST
150 Opening ASCII mode data connection
transferred 24 bytes in < 0.001 seconds, 187.500 Kbps ( 23.438 Kbps), transfer succeeded.
550 No files found or invalid directory or permission problem

!!!!!!进入一个不存在的目录,列表不出,属于正常现象。


然后在web下上传一个文件(FTP LIST看不到)显示:
Starting request
Sending "REST" command to determine if the server supports restarts.
REST 1024
500 Command not recognized
This server does not appear to support restarts.
-- Resuming of interrupted transfers disabled.
-- Multipart downloads disabled.
Finshed checking for "REST" command support.

!!!!!VxWorks的FTP服务器确实是不支持断点续传的。。
PASV
227 Entering Passive Mode (192,168,0,145,4,2)
connecting data channel to 192.168.0.145:4,2(1026)
data channel connected to 192.168.0.145:4,2(1026)
STOR about.htm
553 Cannot create file "about.htm" or permission problem

!!!!!在一个不存在的目录下创建文件确实是不能成功的。
Transfer request completed with status: Failed, 1 SubItem(s) failed
PASV
227 Entering Passive Mode (192,168,0,145,4,3)
connecting data channel to 192.168.0.145:4,3(1027)
data channel connected to 192.168.0.145:4,3(1027)
LIST
150 Opening ASCII mode data connection
transferred 24 bytes in 0.010 seconds, 18.723 Kbps ( 2.340 Kbps), transfer succeeded.
550 No files found or invalid directory or permission problem

!!!!你还是位于一个不存在的目录下,确实是不行的。

从上面的情况分析:

1. 你的Vxworks下的FTP服务器程序有问题,,应该是命令搜索的问题,,,仔细看看命令搜索的算法,看看是否搜索不到。

2. 上面的情况无法看出文件系统是否有问题。。。(根本没有给它表现的机会)

你的FTP客户端不错,日志输出较为详细,便于调试。

建议:

1. 无论是使用Host Shell,还是Target Shell,整个Shell来测试一下shell命令对文件系统操作是否有问题。。。或者你不喜欢,自己写个程序也可以。

2. 测试一下正常的情况:在一个确实存在的文件夹中上传一个文件,看是否能够成功。。。。并下载后比较以下文件是否一致。

3.急需查FTP服务器的问题。。

啊。快出来了,别急。


菜鸟
2007-04-20 05:52:00     打赏
23楼

调出来啦???

文件名称长度限制有可能是文件吸系统本身的问题,应该跟FTP无关。。。。

VxWorks的FTP服务器的ASCII模式确实有点问题,建议强制使用二进制进行传输,包你不出问题,呵呵:)

谢谢共享。

[align=right][color=#000066][此贴子已经被作者于2007-4-19 22:37:15编辑过][/color][/align]

菜鸟
2007-04-20 20:43:00     打赏
24楼
谢谢yaopg高手的建议:

1. 无论是使用Host Shell,还是Target Shell,整个Shell来测试一下shell命令对文件系统操作是否有问题。。。或者你不喜欢,自己写个程序也可以。

Host Shell、Target Shell中我都曾调用过sysTffsFormat()\usrTffsConfig(,,)\chdir()这些对文件系统的操作,显示都是value=0=0x0所以文件系统应该没问题吧?

2. 测试一下正常的情况:在一个确实存在的文件夹中上传一个文件,看是否能够成功。。。。并下载后比较以下文件是否一致。

在一个确实存在的文件夹(存在的文件夹只能通过sysTffsFormat()\usrTffsConfig(,,)\chdir()创建,别无他法啊)下,上传下载功能都正常,下载后与原文件比较完全一致。

3.急需查FTP服务器的问题。。

yaopg高手的建议应该就是FTP服务器的问题,我再仔细推敲源代码吧,应该就是查看tftplib.c之类以及相关的文件吧?请求指导,真正修改vxWorks自带工具的源代码我还没修改过。

4、VxWorks的FTP服务器的ASCII模式确实有点问题,建议强制使用二进制进行传输

具体应该怎么修改请求指导,谢谢!

真心感谢yaopg高手每天的耐心指导!


菜鸟
2007-04-21 02:38:00     打赏
25楼

下午的努力还是没有什么进展。

*******vxWorks ftp server 不支持ftp命令的问题求助************
******创建文件夹test**********
MKD test
500 Command not recognized
XMKD test
500 Command not recognized
******上传文件夹webs**********
Starting request
CWD webs
250 Changed directory to "/data/webs"
PWD
257 Current directory is "/data/webs"
PASV
227 Entering Passive Mode (192,168,0,145,4,1)
connecting data channel to 192.168.0.145:4,1(1025)
data channel connected to 192.168.0.145:4,1(1025)
LIST
150 Opening ASCII mode data connection
transferred 25 bytes in < 0.001 seconds, 195.313 Kbps ( 24.414 Kbps), transfer succeeded.
550 No files found or invalid directory or permission problem
Transfer request completed with status: Finished
CDUP
500 Command not recognized
XCUP
500 Command not recognized
CWD ..
250 Changed directory to "/data/"
PWD
257 Current directory is "/data/"
PASV
227 Entering Passive Mode (192,168,0,145,4,2)
connecting data channel to 192.168.0.145:4,2(1026)
data channel connected to 192.168.0.145:4,2(1026)
LIST
150 Opening ASCII mode data connection
transferred 148 bytes in 0.010 seconds, 115.459 Kbps ( 14.432 Kbps), transfer succeeded.
226 Transfer complete
QUIT
221 Bye...see you later
Connection closed. Ready for next connection.
************************************
ftpdlib.html 包含内容
************************************
The server accepts the following commands:
HELP - List supported commands.
USER - Verify user name.
PASS - Verify password for the user.
QUIT - Quit the session.
LIST - List out contents of a directory.
NLST - List directory contents using a concise format.
RETR - Retrieve a file.
STOR - Store a file.
CWD - Change working directory.
TYPE - Change the data representation type.
PORT - Change the port number.
PWD - Get the name of current working directory.
STRU - Change file structure settings.
MODE - Change file transfer mode.
ALLO - Reserver sufficient storage.
ACCT - Identify the user's account.
PASV - Make the server listen on a port for data connection.
NOOP - Do nothing.
DELE - Delete a file
************************************************************
dos command
************************************************************
ftp> HELP
Commands may be abbreviated. Commands are:

! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir
ftp> MKD test
500 Command not recognized

应该在哪里修改FTP库函数才可以啊,我在Tronado文件夹下找了一遍,找到的相关文件只有:E:\Tornado2.2\target\h下ftpdLib.h 、ftpLib.h但里边都没有相关支持命令的语句
只是在ftpdlib.html看到以上的信息,请高手指点应该如何修改!


菜鸟
2007-04-21 03:22:00     打赏
26楼

啊,别客气。。。

按你的情况来分析:

1. 文件系统类似于没有问题,因为又可读,又可写。。。。。唯有能不能列表没有看到你是否测试。可以在Shell下“ls”一下。

2. 你的Tornado是啥版本的?ftpd是啥版本的?怎么支持的命令那么少???MKD(创建文件夹)这个命令确实没有被包含到ftpd的里面。。。建议更换ftp服务器的程序。。。。参考的很多,参看ftp无法list那个帖子里面,我发了一个可用的,但在你的版本上是否兼容(我不知道你是哪个版本)没有测试。。。

ftp服务器的实现代码在/target/src/netwrs/ftpdLib.c里面,,(有可能你的安装版本里面并没有这个源码的)。。。

关于如何(强制)只使用二进制进行传输,可以在ftp客户端工具的站点管理工具里面指定传输类型,各种ftp客户端稍微有所不同,但遇到ASCII和Binary的时候,选Binary就好了。

啊,文件系统没有问题就不怕了,,ftp服务器应该不花多少时间就可以搞定的。。。。。

好运!!


菜鸟
2007-04-21 04:18:00     打赏
27楼

谢谢yaopg!

1. 文件系统类似于没有问题,因为又可读,又可写。。。。。唯有能不能列表没有看到你是否测试。可以在Shell下“ls”一下。

》这个是不可以的,显示如下

-> ls
undefined symbol: ls

是因为我未能包含系统变量进去还是什么原因,这还是一个问题呢!

不过我用我的FTP工具可以列表显示当前文件夹的内容。

2. 你的Tornado是啥版本的?ftpd是啥版本的?怎么支持的命令那么少???MKD(创建文件夹)这个命令确实没有被包含到ftpd的里面。。。建议更换ftp服务器的程序。。。。参考的很多,参看ftp无法list那个帖子里面,我发了一个可用的,但在你的版本上是否兼容(我不知道你是哪个版本)没有测试。。。

》我的版本是5.5的,我看到的支持的命令就那么点,准备更换呢!不知道您是否有时间给小弟简单介绍一下更换服务器程序的步骤吗?谢谢!

ftp服务器的实现代码在/target/src/netwrs/ftpdLib.c里面,,(有可能你的安装版本里面并没有这个源码的)。。。

》我的目录里面就没有这个东西,版本太低,看来我有必要升级版本了!

关于如何(强制)只使用二进制进行传输,可以在ftp客户端工具的站点管理工具里面指定传输类型,各种ftp客户端稍微有所不同,但遇到ASCII和Binary的时候,选Binary就好了。

》谢谢您给小弟留下的宝贵财富~~~


菜鸟
2007-04-21 07:03:00     打赏
28楼

啊哈,真的是勤奋啊,,,,,,晚上还在搞。

ls的问题:你没有包含一个叫什么,disk utilites for shell的组件,,,好像是这个名字啊,具体你自己找找了。

5.5够了,升级就木有这个笔哟了:)ftpdLib.c是平台产品里面的东东,,,没有没关系。。

如何换ftp服务器:不用那个自带的,下一个当应用程序编译,使用就可以了。。。。我提供的那个5.5是可以用的。

我还以为你是5.2或者更低呢。。


菜鸟
2007-04-21 18:25:00     打赏
29楼

不是勤奋啦,周末没时间不做了,晚上就多弄会,因为这个东西已经这么长时间了还没搞定,多亏yaopg您的帮忙,要不我都不知道怎么办了。

关于更换FTP服务器我还想问一下,原来的那个旧的.o文件不需要通过什么方式把它去掉或者是封掉吗?直接在工程里包含进去编译新的文件得到.o下载进去就可以覆盖掉吗?

继续努力,有问题再向您请教,谢谢!


菜鸟
2007-04-22 03:55:00     打赏
30楼

啊,别这么客气了。。。如何去掉自带的(原有的):不要包含INCLUDE_FTPD这个组件就可以了。。

如何添加新的ftpd:把新的ftpd源码添加到tornado的工程里面,然后在usrAppInit里面调用新ftp服务器的启动函数就可以了。

至于覆盖默认库的做法,一般不是很推荐,因为我们通常保持一个原则:不修改WindRiver自带的东西,因为这样的修改的影响是“全局”的,也就是说不光是对你的这种板子有影响,还会对其它板子造成影响。而这种影响通常不是我们所希望的。所以修改、定制的话,通常将所有的工作局限在“本板”,或者“本应用”。


共49条 3/5 1 2 3 4 5 跳转至

回复

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