chngok
驱动牛犊
驱动牛犊
  • 注册日期2003-06-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2038回复:3

怎样把主机的文件通过网络下载到目标机硬盘?

楼主#
更多 发布于:2003-09-14 11:08
怎样把主机的文件通过网络下载到目标机硬盘?我想把制作好的bootable工程弄到目标机硬盘上
chngok
驱动牛犊
驱动牛犊
  • 注册日期2003-06-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-14 20:22
没人知道吗?
yezhi_zxz
驱动牛犊
驱动牛犊
  • 注册日期2003-08-01
  • 最后登录2004-04-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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;
}

chngok
驱动牛犊
驱动牛犊
  • 注册日期2003-06-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-09-15 20:16
谢谢
游客

返回顶部