版权声明:本文为博主原创文章,未经博主允许不得转载。文章只为项目记录,不能保证观点正确。 https://blog.csdn.net/qq_29486527/article/details/78460346
例如HEX文件为
数据类型
‘00’ Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录
‘01’ End of File Record:用来标识文件结束,放在文件的最后,标识HEX文件的结尾
‘02’ Extended Segment Address Record:用来标识扩展段地址的记录
‘03’ Start Segment Address Record:开始段地址记录
‘04’ Extended Linear Address Record:用来标识扩展线性地址的记录
‘05’ Start Linear Address Record:开始线性地址记录
校验码
以020000040003F7为例子
具体算法为 0x100-((0x02+0x00+0x00+0x04+0x00+0x03)%256)= 0xF7
校验代码如下:
校验成功 return 1
失败 return 0
char AnalyseHEX(char hex[],int len)
{
unsigned char i=0;
int cc=0;
cc=0;
for(i=0;i<=(len-2);i++)
{
cc+=hex[i];
}
cc=cc%256;
cc=0x100-cc;
if((hex[len-1]==cc)||(cc==0x100))
{
return 1;
}
else
{
return 0;
}
}