dm3692001 发表于 2010-3-3 11:29:08

哪位大虾知道cvi读.srec文件怎么读,参数怎么设置

我要往FPGA里面传一个.srec类型的文件,但CVI读出来的文件与原文件内容不符,用ultraedit看到的二进制和我读出来的数列不一样。以至于FPGA端无法对.srec文件进行解码处理。
下面是我的读文件程序,请高手指教,小妹不胜感激!

/*******************************
打开文件函数(自定义)
********************************/
int OpenFileName(UCHAR *FileName)
{
int i;
unsigned char RevData;
   GetPanelHandleFromTabPage (panel_handle, RAD_PANEL_TAB, DEBUGPAGE, &fpgacfgtabhandle);

    FileStatus = GetFileInfo(FileName,&FileSize);
    if (FileStatus == 0)
   MessagePopup("错误","文件没有打开");
    else
    {
                   sprintf (FpgaShowBuf, "文件大小 %i.\n", FileSize);
       SetCtrlVal(fpgacfgtabhandle,DEBUG_FPGACFGINFOBOX,FpgaShowBuf);
       FileHandle = OpenFile(FileName , VAL_READ_WRITE,VAL_APPEND,VAL_BINARY );
       FileBuffer = (unsigned char *)malloc(FileSize);
                   FileStatus = FileToArray (FileName, FileBuffer, VAL_UNSIGNED_CHAR, FileSize, 1,
                         VAL_GROUPS_TOGETHER, VAL_GROUPS_AS_COLUMNS, VAL_BINARY);
       if (FileStatus != 0)
       MessagePopup("错误","文件读取错误");
       else
       {   
      for(i =0;i<FileSize;i++)
      {
         RevData = *(FileBuffer+i);
         
      RevData = ((RevData & 0x80)>>7)+ ((RevData & 0x40)>>5)+ ((RevData & 0x20)>>3)+((RevData & 0x10)>>1)+
         ((RevData & 0x8)<<1)+((RevData & 0x4)<<3)+((RevData & 0x2)<<5)+((RevData & 0x1)<<7);
      
      *(FileBuffer+i) = RevData;
      }
      for(i =0;i<1000;i++)
      {
         if ((*(FileBuffer+i) == 0xff)&& (*(FileBuffer+i+1) == 0xff)&&(*(FileBuffer+i+2) == 0xff)&&(*(FileBuffer+i+3) == 0xff))
            {
          FileHead = i;
          break;
         }
      }
         FileOpend = 1;
       }
       CloseFile (FileHandle);
    }
      return 0;
}

dm3692001 发表于 2010-3-4 09:02:04

已解决。
页: [1]
查看完整版本: 哪位大虾知道cvi读.srec文件怎么读,参数怎么设置