当前位置: 首页 > news >正文

【嵌入式烧录刷写文件】-2.10-为一个Intel Hex文件计算校验和Checksum

案例背景(共6页精讲):

有如下一段Intel Hex文件,为其创建Checksum校验和:CRC16CRC32(CVN)SHA-256 Hash算法…, Checksum Value填充到指定地址。

:2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775F
:2091200078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F90919293949596973F
:2091400098999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B71F
:20916000B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7FF
:20918000D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7DF
:2091A000F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F1011121314151617BF
:2091C00018191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30313233343536379F
:0891E00038393A3B3C3D3E3FAB
:00000001FF

目录

1 使用Vector HexView工具实现:Intel Hex文件计算Checksum校验和

1.1 “自动”计算Checksum校验和

1.2 “手动”计算Checksum校验和

1.3 Command line命令行说明

结尾


优质博文推荐阅读(单击下方链接,即可跳转):

点击返回「《Autosar从入门到精通-实战篇》总目录」

点击返回「《Autosar_BSW高阶配置》总目录」

点击返回《嵌入式硬件/软件开发刷写/烧录文件》专栏

1 使用Vector HexView工具实现:Intel Hex文件计算Checksum校验和

1.1 “自动”计算Checksum校验和

基于批处理Bat(如下图中的Hex_To_Checksum.bat)调用HexView工具提供的Command line,通过该脚本来实现Intel Hex文件(Application. Hex)的Checksum校验和计算。将该脚本集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,即可自动实现。见图1-1。

图1-1

Application.Hex摘录:

:2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775F
:2091200078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F90919293949596973F
:2091400098999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B71F
:20916000B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7FF
:20918000D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7DF
:2091A000F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F1011121314151617BF
:2091C00018191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30313233343536379F
:0891E00038393A3B3C3D3E3FAB
:00000001FF

Hex_To_Checksum.bat摘录:

@echo offRem Path to the executable exe of the Vector HexView tool on your PC
set "HexViewPath=D:\Hex_To_Checksum\HexView\hexview.exe"Rem The input file Input_Hex_File
set "Input_Hex_File=D:\Hex_To_Checksum\Application.hex"Rem The output file Output_Hex_File
set "Output_Hex_File=D:\Hex_To_Checksum\Application_Checksum.hex"Rem Call the command line provided by the HexView tool to convert the Hex file to a Hex file
%HexViewPath% /S %Input_Hex_File% /CS9:@0x91E8;[0x9100-0x91E7] /XI:32:0 -o %Output_Hex_File%

运行该批处理Hex_To_Checksum.bat,即可得到带CRC32(大端Big-Endian”格式)Hex文件。

如果希望将CRC32校验结果,将以“小端little-Endian”格式填充到指定地址,使用命令行CSR

%HexViewPath% /S %Input_Hex_File% /CSR9:@0x91E8;[0x9100-0x91E7] /XI:32:0 -o %Output_Hex_File%

1.2 “手动”计算Checksum校验和

使用Vector Hexview工具打开Hex文件,接着在菜单栏中依次选择Edit -- > Create Checksum

在弹出的Create a checksum value对话框,进行如下设置:

  • Checksum range:可以限制checksum计算操作的数据字段;
  • Checksum type:使用的Checksum算法:CRC16CRC32(CVN)SHA-256 Hash…;

  • 按钮[Calculate]将运行计算,并在字段checksum value中显示结果;
  • 如果选择[Insert],checksum value将被添加到给定地址(Checksum address)的内部数据字段中。

地址段0x9100-0x91e7的CRC32校验结果,将以“大端Big-Endian”格式填充到指定地址。

如果希望将CRC32校验结果,将以“小端little-Endian”格式填充到指定地址,勾选Reverse results即可。

1.3 Command line命令行说明

/CS[R]xx:target[;!forced range[#Fill-pattern]]

[;limited_range]

[/exclude_range1]

[/exclude_range2]

[:target[;limited_range]

[/exclude_range1]

[/exclude_range2]]…

这个选项指定了Checksum calculation校验和计算方法。如果添加了可选的location参数,checksum value就会被写入这个文件中。该结果也可以使用@操作符放到加载的应用程序数据中。注意:在大多数情况下,"location "是一个前置条件。

如果使用/CSR而不是/CS,生成的Checksum将被倒置(低字节在先)。

Filename (e.g. csum.txt)

将结果写进一个文件。该值以十六进制的形式从高字节到低字节写入。每个字节用逗号隔开。

@append

checksum的结果将被加在文件的最末尾。

@begin

将内容写在文件的开头。

重要提示:它将覆盖你数据的第一个字节。将被覆盖的字节数取决于校验方法。

@upfront

将校验结果写在第一个块的开头之前。没有数据会被覆盖。

@end

将校验和放在文件最后一节的最后一个字节上。地址是自动计算的。

重要提示:它将覆盖你的数据的最后一个字节。将被覆盖的字节数取决于校验方法。

@0x1234

将校验结果写入@运算符后给出的地址位置。

结尾

获取更多“汽车电子资讯”和“工具链使用”,

请关注CSDN博客“汽车电子助手”,做您的好助手。

http://www.lryc.cn/news/428856.html

相关文章:

  • 整体思想以及取模
  • RabbitMQ 消息可靠保障
  • Redis 作为 PHP 的会话存储
  • 基于伏图的数字心脏模拟仿真APP应用介绍
  • 智云-一个抓取web流量的轻量级蜜罐docker一键启动
  • 原生HTML5、CSS、JavaScript实现简易网易云音乐播放
  • 网上商城小程序的设计
  • 微分方程(Blanchard Differential Equations 4th)中文版Section2.2
  • Swift 环境搭建
  • 科技与出版
  • 5年前端面试之路
  • 产品运营(一)--产品运营是什么?
  • 学习大数据DAY41 Hive 分区表创建
  • 【三维目标检测模型】ImVoteNet
  • 力扣 | 背包dp | 279. 完全平方数、518. 零钱兑换 II、474. 一和零、377. 组合总和 Ⅳ
  • 【ECMAScript性能优化的技巧与陷阱】
  • Swift实时监听判断是否连接有网络WIFI和蜂窝数据
  • (三)Flink Source 数据源
  • 第四届机电一体化、自动化与智能控制国际学术会议(MAIC 2024)
  • leetcode 089 打家劫舍
  • 等保测评基础知识(六)
  • 作业帮 TiDB 7.5.x 使用经验
  • c语言练习题1
  • 嵌入式开发就业方向有哪些?前景未来可期!
  • 系列:水果甜度个人手持设备检测-github等开源库和方案
  • Visual Studio中 生成版本号
  • AI入门指南(四):分类问题、回归问题、监督、半监督、无监督学习是什么?
  • Linux下本地端口转发
  • RPC 和 HTTP 理解
  • Visual Studio 2022 v17.11 发布