阅读:2149回复:3
怎样把主机的文件通过网络下载到目标机硬盘?
怎样把主机的文件通过网络下载到目标机硬盘?我想把制作好的bootable工程弄到目标机硬盘上
|
|
沙发#
发布于:2003-09-14 20:22
没人知道吗?
|
|
板凳#
发布于:2003-09-15 18:47
你的问题不是太清楚,如果是要想从X86的硬盘上直接启动的话,可以看看下面的方法,
如果是想动态升级或者更新你vxworks的话,可以把你的vxworks作成一个bootble的vxworks, 同时在你的os中作一个文件系统,通过FTP或者tftp把vxworks下载到你的目标机上,然后调用I/O的write将vxworks写到硬盘的引导区,reboot即可,给你一个编写ftp的update版本的例子 硬盘启动方法: 1.在config.h中将INCLUDE_ATA包括进去; 2 .修改config.h里的 #define DEFAULT_BOOT_LINE \"ata=0,0(0,0)host:/ata0/vxWorks \" 3 .将目标硬盘格式化,用vxsys.exe(在host/x86_win32/bin/下)做盘; 4. 把bootrom.sys做在软盘上,拷到目标硬盘上; 5. 把你生成的vxworks文件拷到目标硬盘上;重新启动就OK int UpdateFile(char * szFileName) { int ctrlSock; int srcFd,dstFd; char szFileBuf[1024]; char szDstFileName[30]; int nBytesRead,nBytesWrite; STATUS status = OK; sprintf(szDstFileName,\"/FLASH/%s\",szFileName); if (ftpXfer (szFtpServer, szUserName, szPasswd, \"\",\"RETR %s\", \"\", szFileName,&ctrlSock, &srcFd) == ERROR) { printf(\"UpdateFile: Can\'t connect to the ftp Server,please check the parameter!\\n\"); return ERR; } remove(szDstFileName); if((dstFd = open(szDstFileName,O_RDWR|O_CREAT,0)) == ERROR) { printf(\"\\n\\tCan\'t open %s for write\",szDstFileName); return ERR; } printf(\"\\nLoad :%s ...................................\",szFileName); nBytesRead = read(srcFd,szFileBuf,1024); while(nBytesRead > 0) { nBytesWrite = write(dstFd,szFileBuf,nBytesRead); if(nBytesWrite == ERROR) { printf(\"\\n write %s to Flash,ERROR\",szFileName); close(srcFd); close(dstFd); if (ftpReplyGet (ctrlSock, TRUE) != FTP_COMPLETE) status = ERR; if (ftpCommand (ctrlSock, \"QUIT\", 0, 0, 0, 0, 0, 0) != FTP_COMPLETE) status = OSS_ERR; close (ctrlSock); return ERR; } nBytesRead = read(srcFd,szFileBuf,1024); } printf(\"... OK!\\n\"); close(srcFd); close(dstFd); if (nBytesRead < 0) status = ERR; if (ftpReplyGet (ctrlSock, TRUE) != FTP_COMPLETE) status = ERR; if (ftpCommand (ctrlSock, \"QUIT\", 0, 0, 0, 0, 0, 0) != FTP_COMPLETE) status = ERR; close (ctrlSock); return status; } |
|
地板#
发布于:2003-09-15 20:16
谢谢
|
|