一、背景
在一些开发中可能需要手动修改烧写文件中的一些数据,由于s19文件和hex文件中都有checksum校验和,如果修改了其中的数据内容,则需要手动同步修改校验和。
1.文件格式
S-record 格式文件由一系列 ASCII 文本记录组成。这些记录从左到右具有以下结构:
type | count | address | data | checksum |
Intel Hex由任意数量的十六进制记录组成。每个记录包含6个域,它们按一下格式排列。
MARK | RECLEN | OFFSET | RECTYP | DATA | CHKSUM |
2.修改数据
hex文件中一个原数据
手动修改一个数据
可以看到手动修改数据后,notepad提示校验和错误,一些烧写软件打开这个hex文件可能会报错,这个时候就需要手动重新计算校验和。
但是通过srec_cat工具可以自动文件中的错误的校验和,srec_cat可以同时支持s19和hex文件的校验和错误修复。
二、修复数据
在使用srec_cat输出的时候添加-ignore-checksums参数就可以忽略源文件的校验和,同时输出正确校验和的目标文件。
1.hex文件修复
使用在srec_cat.exe目录下运行命令行,同时保证要处理的文件位于该目录中。
输入以下命令可以修复hex文件中的校验和
.\srec_cat.exe infile.hex -intel -ignore-checksums -o outfile.hex -intel
infile.hex 是校验和有问题的文件
outfile.hex 是输出的正常的文件
2.s19文件修复
使用在srec_cat.exe目录下运行命令行,同时保证要处理的文件位于该目录中。
输入以下命令可以修复hex文件中的校验和
.\srec_cat.exe infile.s19 -ignore-checksums -o outfile.s19