【嵌入式烧录刷写文件】-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.rhkb.cn/news/404998.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 求坐标点在扇形区域内的投影

视频效果&#xff1a; 代码: /// <summary>/// 投影在扇形区域内的点/// </summary>/// <param name"targetPos">目标点</param>/// <param name"fanRadius">扇形半径</param>/// <param name"fanAngle"…

【C语言】【Linux】如何在Linux终端中进行彩色输出——C语言篇

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;C语言编程&…

超越Midjourney的AI绘画神器,Flux文生图究竟强在哪里?测评攻略来咯|附生成咒语

最近&#xff0c;AI绘画界又掀起了一阵热潮。Flux大模型现在真的已经是火遍了Al圈&#xff0c;都说生图的质感媲midjourney&#xff1f;但是对于大多数人来说配置要求太高了&#xff0c;今天就带大家用国产的AI绘画软件进行测评&#xff0c;感兴趣的就一起往下看看吧&#xff0…

eNSP 华为交换机链路聚合

华为交换机链路聚合 链路聚合好处&#xff1a; 1、提高带宽 2、链路冗余 SW_2&#xff1a; <Huawei>sys [Huawei]sys SW_2 [SW_2]vlan batch 10 20 [SW_2]int g0/0/4 [SW_2-GigabitEthernet0/0/4]port link-type access [SW_2-GigabitEthernet0/0/4]port default vl…

知识改变命运 数据结构【栈和队列面试题】

1.最小栈 class MinStack {Stack <Integer>stack;Stack <Integer>minStack; public MinStack() {stacknew Stack<>();minStacknew Stack<>();}public void push(int val) {stack.push(val);if(minStack.empty()) {minStack.push(val);} else {int top…

解决旧版CMS内容管理无法登录的问题

最近遇到了输入正确的账户密码&#xff0c;旧版的CMS内容管理的平台提示登录成功却无法跳转的问题 遇到这种情况请不要慌&#xff01;&#xff01;&#xff01; 请按照下面的步骤解决问题&#xff1a; 1.点击账号管理 2.点击右上角的返回旧版控制台 3.点击cloud1环境 4.点击扩…

武林外传书生版单机安装教程+GM工具+虚拟机一键端

今天给大家带来一款单机游戏的架设&#xff1a;武林外传书生版。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xff0c;绝对是完整…

代码随想录算法训练营第二十一天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

目录 一、LeetCode 669. 修剪二叉搜索树思路&#xff1a;C代码 二、LeetCode 108.将有序数组转换为二叉搜索树思路C代码 三、LeetCode 538.把二叉搜索树转换为累加树思路反中序遍历变量传参递归&#xff08;野路子&#xff09; 总结 一、LeetCode 669. 修剪二叉搜索树 题目链接…

javaweb学习之HTML(一)

推荐学习使用网站 w3school 在线教程 认识HTML HTML&#xff08;HyperText Markup Language&#xff09;是超文本标记语言&#xff0c;它是一个用于创建网页和网页应用程序的标准标记语言。HTML文档由一系列的元素&#xff08;elements&#xff09;组成&#xff0c;这些元素通…

Unity 麦扣 x 勇士传说 全解析 之 怪物基类与野猪(附各模块知识的链接,零基础也包学会的牢弟)(案例难度:★★☆☆☆)

通过一阵子的学习&#xff0c;我是这么认为的&#xff0c;因为该教程是难度两星的教程 &#xff0c;也就是适合学了一阵子基础组件以后的学习者 &#xff08;什么都不会的学习者要是学这套课程会困难重重&#xff0c;如果你什么都不会那么需要学习一星教程&#xff09; 所以该…

SQL-事务与并发问题

在数据库管理系统中&#xff0c;事务是一个重要的概念&#xff0c;它确保了一组数据库操作要么全部成功&#xff0c;要么全部失败&#xff0c;从而维护数据的完整性和一致性。随着多个用户同时访问数据库&#xff0c;事务的并发处理变得尤为重要。 1. 事务的定义 事务是指一组…

AI 代理参考架构

LLM Agent部署框架 围绕 ChatGPT 的讨论&#xff0c;现在已经演变为AI 代理。 图&#xff1a;AI代理平台参考架构 比尔盖茨最近设想&#xff08;CNBC 采访&#xff1a;链接&#xff09;未来我们将拥有一个能够处理和响应自然语言并完成许多不同任务的AI 代理。盖茨以计划旅行…

ETAS工具链自动化实战指南<一>

----自动化不仅是一种技术&#xff0c;更是一种思维方式&#xff0c;它将帮助我们在快节奏的工作环境中保持领先&#xff01; 目录 往期推荐 场景一&#xff1a;SWC 之间 port自动连接 命令示例 参数说明 场景二&#xff1a;SWC与ECU 自动映射 命令示例 参数说明 场景三&…

c#实现数据导出为PDF的方式

PdfSharp vs iTextSharp: C#中PDF导出功能比较 PdfSharp 优点 轻量级&#xff1a;适合简单的PDF生成任务易于学习&#xff1a;API相对简单&#xff0c;学习曲线较缓开源&#xff1a;提供开源版本&#xff0c;可自由使用和修改纯C#实现&#xff1a;不依赖外部库或COM组件支持…

对零基础想转行网络安全同学的一点建议

最近有同学在后台留言&#xff0c;0基础怎么学网络安全&#xff1f;0基础可以转行做网络安全吗&#xff1f;以前也碰到过类似的问题&#xff0c;想了想&#xff0c;今天简单写一下。 我的回答是先了解&#xff0c;再入行。 具体怎么做呢&#xff1f; 首先&#xff0c;你要确…

1.初识redis

文章目录 1.认识redis1.1 mysql和redis 对比1.2分布式系统1.2.1单机架构与分布式架构1.2.2数据库分离(应用服务器和存储服务器分离)与负载均衡1.2.3负载均衡器1.2.4 数据库读写分离1.2.5 数据库服务器引入缓存1.2.6数据库分库分表1.2.7 引入微服务 2.常见概念解释2.1 应用(Appl…

音频导出后为什么效果变差了 FL Studio音频导出设置推荐

FL Studio是一款功能强大的编曲软件&#xff0c;除了可以编曲之外&#xff0c;FL Studio还支持各种音频格式导出。有的小伙伴在使用FL Studio导出音频后&#xff0c;会发现的导出的音频效果不理想&#xff0c;这很大的原因可能是导出设置不对造成的。下面给大家详细讲解&#x…

全面解析Gerapy分布式部署:从环境搭建到定时任务,避开Crawlab的坑

Gerapy分布式部署 搭建远程服务器的环境 装好带docker服务的系统 Docker:容器可生成镜像&#xff0c;也可拉去镜像生成容器 示例&#xff1a;将一个环境打包上传到云端(远程服务器)&#xff0c;其他8个服务器需要这个环境直接向云端拉取镜像生成容器,进而使用该环境,比如有MYS…

代码块分类

局部代码块 public class Test {public static void main(String[] args) {{int a 10;}// 执行到此处时候,变量a已经从内存中消失了。 // System.out.println(a);} } 构造代码块 public class Test {private String name;private int age;{// 构造代码块System.out.…

GEC6818开发板的学习

1、开发板的简介 首先连接 开发板与电脑,需电脑安装串口驱动:例CH340 2、开发板的特性: 像素:800*480Pix分辨率:高,宽两个维度的像素点数目开发板色深为32位一个像素点占4个字节:分别为灰度保留位、RGB三原色各占一位3、为什么要内存映射 虽然LCD设备本质上也可以看作…