将数据从缓冲区复制到下一行

时间:2014-10-22 06:48:35

标签: c memcpy

在我的代码中,我有全局缓冲区,它接收十六进制数据。这个十六进制数据只是英特尔十六进制格式的编译器输出。我想从数据中删除intel Hex头和CRC位,将其转换为二进制数据,并写入我的应用程序flash addres。为此,我的问题是

要将数据从英特尔十六进制转换为二进制,我必须一次从缓冲区读取一行并进行转换。 为了读取一行格式缓冲区,我将代码编写为示例

char str[];        //buffer whitch hold Hex file 
char readBuffer[128];   //buffer to read data
char * pch;
int iTotalShift = 0;
int iShift = 0;
int iSize = 0;
while(iSize < SizeOfBuffer)
{
    pch = strstr (&str[iTotalShift],"\n"); 

    //this \n may change to actual hex value of \n i.e.0x0D0A

    iShift = (pch - &str[iTotalShift]);
    memcpy(&readBuffer[0], &str[iTotalShift], iShift );
    iTotalShift = iTotalShift + (iShift + 2);
    iSize =  iTotalShift;
}

有没有更好的方法来使用c代码,请分享....

提前致谢

0 个答案:

没有答案