单片机Hex文件校验生成和验证的方法
来源:嵌入式专栏 发布时间:2024-05-11
分享至微信
![](/_nuxt/img/wechaticon.317e48d.png)
![](https://img.icspec.com/article/a11997ba0f3e11efa1b300163e1eb85a.jpeg)
关于Hex
![](https://img.icspec.com/article/a1340b0e0f3e11ef884400163e1eb85a.png)
00:数据标识 01:文件结束标识 02:扩展段地址 04:线性地址 05:线性开始地址
CheckSum = 0x100 - (Sum & 0xFF)
实例描述Hex
![](https://img.icspec.com/article/a12b0b4e0f3e11efa1b300163e1eb85a.png)
:020000040800F2
:1000000000040020B1010008FD020008BD02000844
:10001000F902000801020008350400080000000091
:1000200000000000000000000000000021030008A4
···省略数行
:100470000000024084040008000000200004000086
:040480004804000824
:040000050800019955
:00000001FF
:020000040800F2
![](https://img.icspec.com/article/a1627f160f3e11ef9f3400163e1eb85a.png)
:1000000000040020B1010008FD020008BD02000844
:10FFD000D0C5CFA20D0A00003052010810B50A4862
:10FFE00002F0FEFC09A002F0FBFC14A002F0F8FCF9
:10FFF0001EA221A123A002F0F3FC2CA002F0F0FC31
:020000040801F1
:10000000394802F0EDFC10BD3C5301080D0A2A20CE
:1000100020202020202020202020202020202020E0
:100020002020202020202020202020414756D6C7F5
:00000001FF
Hex校验测试代码
bitAnalyseHEX(charhex[],intlen)
{
unsigned char i=1;
unsigned char data;
int cc=0;
char temp[2];
do
{
temp[0] = hex[i++];
temp[1] = hex[i++];
sscanf(temp,"%x",&data);
cc += data;
} while (i<(len-2));
cc%=256;
cc=0x100-cc;
temp[0] = hex[i++];
temp[1] = hex[i++];
sscanf(temp,"%x",&data);
return (cc==data)?1:0;
}
![](https://img.icspec.com/article/a1643d060f3e11ef884400163e1eb85a.jpeg)
![](https://img.icspec.com/article/a17f6ba80f3e11ef884400163e1eb85a.png)
[ 新闻来源:嵌入式专栏,更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj]
存入云盘 收藏
举报
全部评论
暂无评论哦,快来评论一下吧!
![](https://img.icspec.com/common/images/artbrand.png)
![](https://img.icspec.com/xxt/avatar/9e8c32953d3a4ac887530700d0df3e22.png)
嵌入式专栏
作者黄工【strongerHuang】,专注分享嵌入式软件、硬件、工具等相关内容,通过专栏形式精选并整理更多嵌入式相关教程。
查看更多
相关文章
Keil实用小技巧 | Keil定制Hex文件名实现的方法
2024-05-11
单片机bin文件转C语言,可以吗?
2024-05-11
单片机用汇编和C语言点灯程序的区别
2024-05-11
基于51单片机汇编语言
2024-06-07
单片机常见Fault故障及应对办法
2024-05-11
热门搜索