这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » vxworks 目录操作问题 SOS!!!

共7条 1/1 1 跳转至

vxworks 目录操作问题 SOS!!!

菜鸟
2006-09-09 23:21:13     打赏

(1)我的DEFAULT_BOOT_LINE 定义如下
#define DEFAULT_BOOT_LINE \
"ata=1,0(0,0)host:/ata1/vxWorks h=192.168.0.208 e=192.168.0.209 u=zzw tn=target

o=fei"

(2) 服务方通过单步跟踪,可以发现正常写入了文件。

const char* filename1 = "hello.obj";

FILE* fd = fopen(filename1, "w");
if (fd == NULL)
{
perror("fopen");
exit(1);
}

fprintf(fd, "%s", (char*) ior);
fclose(fd);
(3)客户方:打开文件时报告错误
const char* filename = "hello.obj";

char buf[1024];
FILE* fd = fopen(filename, "r");
if (fd == NULL)
{
perror("fopen");
exit(1);
}

fscanf(fd, "%s", buf);
fclose(fd);

(4) 在vxworks中查看设备如下
-> devs host
drv name
0 /null
1 /tyCo/0
1 /tyCo/1
2 /pcConsole/0
2 /pcConsole/1
4 /fd0
7 host:
8 /vio
value = 0 = 0x0
-> pwd
host:host
value=10=0xa

(5)找不到文件hello.obj ?? 他去哪里了??谁能帮我找回来??




关键词: vxworks     目录     操作     问题    

菜鸟
2006-09-10 18:57:00     打赏
2楼
我是从硬盘启动的vxworks,没有挂载硬盘怎么启动??

菜鸟
2006-09-11 02:00:00     打赏
3楼

bootrom.sys里加了ATA的驱动,但是如果VxWorks没有加ATA的驱动的话,是不能操作硬盘的。在VxWorks系统启动后,可以在tShell里或者你的应用程序里调用函数usrAtaConfig()来mount硬盘文件系统!


菜鸟
2006-09-11 18:26:00     打赏
4楼

我已经在config.h中加载了ATA,并且可以cd "host:/ata1",但是还是找不到写入的文件??

who can tell me why??


菜鸟
2006-09-12 16:36:00     打赏
5楼


(1)按照你的思路加了绝对路径,结果发现open返回的fd是1;
根据vxworks的文档:
Three file descriptors are reserved and have special meanings:

0 = standard input
1 = standard output
2 = standard error output

实际也观察到write之后,写到文件的内容写到屏幕了。

const char* filename1 = "host:/ata1/hello.objid";
int fd1;

if ((fd1 = open (filename1,O_CREAT|O_RDWR,0644) == ERROR))
return (ERROR);

int nlen=strlen((char *) ior);
int nwrite=write(fd1,(char *)ior,nlen);
close(fd1);

(2)执行cd "host:/ata1"也能成功,返回为0
但是执行ls "host:/ata1"返回不为0,说明不成功。


菜鸟
2006-09-12 17:09:00     打赏
6楼

建议LZ:下次再提问题时把所用的VxWorks的版本和开发平台先说明一下,这样回答问题才会有针对性!

如果用Tornado IDE开发,确保在component configuration 里面INCLUDE_ATA,然后重新编译VxWorks image。

如果直接在命令行下编译VxWorks image,在config.h中INCLUDE_ATA即可!

如果ATA驱动加载成功,用devs命令查看设备时,会看见如"/ata0a"的ATA设备标识符。而不像LZ所引用的"host:/ata1"(当然也不排除特意地去改ATA驱动使ATA设备标识符成为个性鲜明的名称)

假如所创建的ATA设备是"/ata0a",你可以cd "/ata0a"

[align=right][color=#000066][此贴子已经被作者于2006-9-12 9:13:18编辑过][/color][/align]

菜鸟
2006-09-12 19:00:00     打赏
7楼

(1)我已经INCLUDE_ATA

(2) 宿主机机器名为host

目标机机器名为target

DEFAULT_BOOT_LINE 定义如下:

"ata=1,0(0,0)host:/ata1/vxWorks h=192.168.0.208 e=192.168.0.209 u=zzw tn=target o=fei"

(3)版本为tornado2.2+vxworks5.5

是不是我的default_boot_line有错误??

谢谢!!


共7条 1/1 1 跳转至

回复

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