c语言解析s19文件,常见image格式(hex/s19)如何校验?且看Checksum-嵌入式系统-与非网...

news/2025/3/16 20:54:59/

今天痞子衡继续给大家介绍针对 packet 校验的最简单的校验法 - 即和校验法。

一、和校验法基本原理

1.1 校验依据

和校验法的校验依据就是判断一次传输的 n bytes 组成的 packet 的所有 byte 累加和结果(仅截取低 byte)在传输前后是否一致。

1.2 和校验位

为了实现和校验,通常会在传输的这组 n bytes 数据最后插入一个额外的和校验字节(byte),用它来记录这组数据累加和的低 byte 结果。

1.3 校验方法

前面讲到和校验位实际上是 n bytes 数据包的累加和,那么一包数据的长度 n 到底怎么确定呢?为了确定 n,我们通常会在一包数据开始的时候额外插入一个信息位标明当前数据包长度。

在实际应用中,数据包是一包一包连续发送的,如果传输过程中发生数据丢失,则会引起数据包的错位导致接下来一连串数据包的解析错误,如何及时发现数据包错位呢?我们通常还会在数据包最开始的时候再额外插入一个信息位标明一包数据的开始,这个信息位也叫作起始标志字节。

所以最终完整的数据包变成如下格式:

起始标志字节(1 byte)    长度字节(1-2 byte)    原始数据位(n bytes)    和校验字节(1 byte)

有了上述前导信息位,我们便可以准确找到一包数据中的原始数据位进行累加计算得出和,然后与数据包中的校验和字节进行比较验证当前包数据的正确性。

需要注意的是,对于校验和字节,有时候并不一定是数据位所有字节之和结果的原码,也有可能是反码或补码(关于三者区别,请参考痞子衡另一篇文章《整数在计算机中的表示》),需要结合不同校验和应用标准区别对待,否则会导致验证结果有误。


http://www.ppmy.cn/news/178715.html

相关文章

关于s19赛季服务器维修,王者荣耀S19赛季版本更新问题及解决办法一览

王者荣耀3月31日进行了一波大更新,因为之前早有爆料,所以大家对这次更新内容应该有了解,主要就是s19赛季的更新,有很多新英雄新皮肤。不过,有些玩法发现更新不了,更新中出现了不少问题。今天王者荣耀正式更…

S19文件和HEX文件解析

目录 一、S19文件解析: 1、记录类型 2、长度计算 3、地址 4、数据 5、校验和及计算 二、HEX文件解析 1、记录类型 2、起始地址 3、数据长度 4、校验和 一、S19文件解析: S19文件格式与mot文件只是命名方式不同,看数据格式的话&…

关于s19赛季服务器维修,王者荣耀S19赛季有哪些调整 S19野区和中线调整内容一览...

S19,目前呢,王者荣耀s19赛季的皮肤已经曝光,大家都知道是明世隐了,同时s19赛季相关调整也都跟着曝光了,那么王者荣耀s19赛季有哪些调整呢?本次就为大家带来了王者荣耀S19赛调整一览,还不清楚S19…

S19文件格式详解

目录 目录格式定义及含义EXAMPLE 1 Example12 Example2 在进行STVP开发过程中,编译后会生成s19后缀的文件。 百度S19后得到如下内容: S-record格式文件是Freescale CodeWarrior编译器生成的后缀名为.S19的程序文件,是一段直接烧写进MCU的A…

C#【文件操作篇】S19文件转bin文件

C#—S19文件转bin文件 控件布局代码运行结果源码下载: 如果对于S19文件格式不懂,可见: S19文件格式详解(1):https://star-302.blog.csdn.net/article/details/119564818 S19文件格式详解(2&…

Motorola S19(S-record)格式解析

S-record格式文件是Freescale CodeWarrior编译器生成的后缀名为.S19的程序文件,是一段直接烧写进MCU的ASCII码,英文全称问Motorola format for EEPROM programming。 1.格式 S-record 每行最大78字节,156个字符,由5部分组成 Sty…

S19文件格式简述

转自:http://blog.csdn.net/finewind/article/details/5483554 1.概述 为了在不同的计算机平台之间传输程序代码和数据,摩托罗拉将程序和数据文件以一种可打印的格式(ASCII格式)编码成s格式文件。s格式文件是Freescale推荐使用的标准文件传送格式。编译…

hex、s19文件烧录

S19 格式定义及含义 S-record每行最大是78个字节,156个字符 S-record format type count address data checksum type(类型):2个字符。用来描述记录的类型 (S0,S1,S2,S3,S5,S7&#xf…