1.建立TFFS,格式化FLASH并挂载后,在SHELL中用devs命令可以看到"/tffs"了。可以执行LS、CD命令,但一执行copy命令就说符号未定义,怎么回事啊?
2.FLASH扇区大小是128K,在调用tffsDevFormat时,发现TFFS的最后一个扇区始终不能格式化,不知什么原因。
1.符号为定义是因为符号表里找不到你的copy函数,可能是因为根本没有copy函数,也可能是实现了copy函数,但符号表里没有,这个跟你来接的时候的设置有关.我猜是因为没有copy函数. 好久没玩vxWorks了.试试cp如何?好象应该是跟Unix的命令一致的.
2.跟你配置TFFS的参数有没有关系?
首先谢谢你,可以问的人真是不多。
1.在config.h里包含了include_io_system、include_dosfs等几个宏定义,不就可以使用COPY函数了么,难道是要自己编写COPY函数么。CP也是没定义。
2.是啊。可为什么TFFS最后一个block没格也能挂上TFFS呢。
3.用devs已经可以看到/tffs了,copy,cp命令不可以用,有没有其他的方法来验证一下TFFS是否可以用呢?
谢谢!
对于copy的问题,我觉得还是因为你在Torado里没有配置好,你可以仔细看一下。命令行相关的部分之只是调试需要用,所以需要显式设置包含符号表,才可以在shell下使用。我以前碰到过类似的问题,是其他函数。抱歉,现在手里因为没有环境,所以没法帮你看。但是我想应该是这个原因。
关于TFFS的问题,我不知道。另外你也可以自己写个函数,去调用copy,你在shell下调自己函数就是了.这个蛮土的方法,但是我相信能行。
呵呵
使用cp命令看看呢
欢迎大家光临“随点BBS”
http://www.b2tang.com
里面有很多关于嵌入式的资料可下载,linux , vxworks等
to土豆:把编译器设置为不包含调试信息,就没有符号表了,调用函数就会出现符号未定义,不知道您讲的是不是这个意思。现在在shell下,chdir remove cd等命令都可以用,而COPY,mkdir等不可以用。
to qiutian100:我试也不行。谢谢你。
其实我觉得在FLASH上建立TFFS文件系统好像意义不大。
是的,符号表用于调试,用于将字符串标识的函数名转换成实际的函数在内存中的入口地址,是否包含符号表在Tonado里应该有显式的是设置. 在shell中敲的命令其实是去符号表查找该函数,然后将对应参数带入调用函数. 是所以我猜测,能调用cd等是因为他们的符号表在,而copy是因为符号表不在.他们可能封在不同的包里.
2.TFFS对flash意义很大.有2点:
1).flash擦除和写的速度慢,通过TFFS在physical block的基础上建立一层logical block,这样,在对block 写操作时不需要先擦除,只需要将同一个logical block映射到另外的physical block就可以了.原来的physical block在空闲的时候再擦除;
2).因为1)中的擦除和写方式,可以实现一种机制,用于减小擦除和写操作过程中系统崩溃导致文件系统崩溃.例如在写操作过程中掉电了,如果没有这样的机制,重启和文件系统必然崩溃;而有了这样的机制后,可以在重启的时候从旧的拷贝中恢复系统,也就是所谓的日志文件系统.当然具体实现会比说起来复杂得多. 这个和Linux中的JFFS/JFFS2/JFFS3很相似,其实他们就是一个体系的.