|
我要往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;
} |
|