【嵌入式烧录刷写文件】-2.10-为一个Intel Hex文件计算校验和Checksum
案例背景(共6页精讲):
有如下一段Intel Hex文件,为其创建Checksum校验和:CRC16,CRC32(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算法:CRC16,CRC32(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博客“汽车电子助手”,做您的好助手。
相关文章:

【嵌入式烧录刷写文件】-2.10-为一个Intel Hex文件计算校验和Checksum
案例背景(共6页精讲): 有如下一段Intel Hex文件,为其创建Checksum校验和:CRC16,CRC32(CVN),SHA-256 Hash算法…, 将Checksum Value填充到指定地址。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767…...

整体思想以及取模
前言:一开始由于失误,误以为分数相加取模不能,但是其实是可以取模的 这个题目如果按照一般方法,到达每个节点再进行概率统计,但是不知道为什么只过了百分之十五的测试集 题目地址 附上没过关的代码 #include<bits…...

RabbitMQ 消息可靠保障
RabbitMQ 消息可靠保障 消息的可靠性保证生产者重连生产者确认解决思路A-确认机制解决思路B-备份交换机 MQ 服务器宕机导致消息丢失消费端消息的可靠性保障 消费端限流给消息生成唯一id 消息的可靠性保证 实际项目中 MQ 的流程一般是:生产端把消息路由到交换机&…...
Redis 作为 PHP 的会话存储
使用 Redis 作为 PHP 的会话存储,可以实现多个服务器之间的会话共享,提高会话管理的效率,特别是在分布式系统中。这种方法将会话数据存储在 Redis 中,而不是使用默认的文件系统,从而使多个服务器可以访问相同的会话数据…...

基于伏图的数字心脏模拟仿真APP应用介绍
一、背景介绍 心脏是保证人体正常运转最重要的动力,人体内的血液循环通过心血管运输到各个部位,因此,心血管系统的稳定是人体健康的关键。心血管内科领域极具专业性,其理论研究与技术发展日新月异,心血管疾病患者往往…...

智云-一个抓取web流量的轻量级蜜罐docker一键启动
智云-一个抓取web流量的轻量级蜜罐docker安装教程 github地址 https://github.com/xiaoxiaoranxxx/POT-ZHIYUN docker快速启动(v1.4) git clone https://github.com/xiaoxiaoranxxx/POT-ZHIYUN.git cd POT-ZHIYUN docker-compose up -d默认映射到80和8080端口 mysql不对外开放…...

原生HTML5、CSS、JavaScript实现简易网易云音乐播放
1.效果图 2.源码 1.index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网易云音乐</title><link rel"stylesheet" href"../CSS/index.css"> </head>…...

网上商城小程序的设计
管理员账户功能包括:系统首页,个人中心,用户管理,商品信息管理,商品类型管理,活动专区管理,新品上架管理,用户评价管理,订单管理,系统管理 微信端账号功能包…...

微分方程(Blanchard Differential Equations 4th)中文版Section2.2
动力系统的几何分析 捕食者-猎物系统的向量场 在第2.1节中,我们展示了两个不同捕食者-猎物系统的 R ( t ) R(t) R(t) 和 F ( t ) F(t) F(t) 图形,但没有描述我们是如何生成这些图形的。我们将在第2.5节中解决这个问题,采用欧拉方法推广到…...
Swift 环境搭建
Swift 环境搭建 Swift 是由苹果公司开发的一种强类型编程语言,用于iOS、macOS、watchOS和tvOS应用程序的开发。搭建Swift开发环境是开始使用Swift进行编程的第一步。本文将详细介绍如何在不同的操作系统上搭建Swift开发环境。 在macOS上搭建Swift环境 系统要求 …...
科技与出版
科技与出版 ISSN: 1005-0590 CN: 11-3209/G3 常设栏目:特别策划、产业观察、融媒之光、编辑实务、营销方略、学术探索、创作空间等。 稿件要求 (1)来稿应有创新性;立论科学,主题明确,推理严谨;词语准确,…...
5年前端面试之路
作者:星空海绵 顺便吆喝一声,技术大厂,内推捞人,前/后端or测试←感兴趣 --加班偶尔较多,但周末加班两倍工资。 --15-35K,工资一线城市属于一般,但二线城市很可以。 前言 由于公司要进行…...

产品运营(一)--产品运营是什么?
1.运营是什么? 通过一系列穿针引线式的行为和资源投入,让一件事能持续良性运转。 运营面向的主体不同,使用的运营手段也是不同的。作用:赋予产品闪耀的光芒。距离用户最近的人(体验用户,成为用户?demo:k…...

学习大数据DAY41 Hive 分区表创建
目录 分区表 分区表应用场景 oracle 分区表种类 oracle 分区-范围分区 oracle 分区-列表分区 oracle 分区-散列分区 oracle 分区-组合分区 oracle 分区-分区表操作 hive 分区-创建分区表 hive 分区-分区表操作 hive 分区-动态分区表配置 上机练习 分区表 分区是将一…...

【三维目标检测模型】ImVoteNet
【版权声明】本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。 参考书籍:《人工智能点云处理及深度学习算法》 本文为专栏《Python三维点云实战宝典》系列文章,专栏介绍地址“https://blog.csdn.net/suiyin…...

力扣 | 背包dp | 279. 完全平方数、518. 零钱兑换 II、474. 一和零、377. 组合总和 Ⅳ
文章目录 一、279. 完全平方数二、518. 零钱兑换 II三、474. 一和零四、377. 组合总和 Ⅳ 一、279. 完全平方数 LeetCode:279. 完全平方数 朴素想法: 这个题目最简单的想法是,可以用 O ( n n ) O(n\sqrt{}n) O(n n)的动态规划解决&#x…...

【ECMAScript性能优化的技巧与陷阱】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
Swift实时监听判断是否连接有网络WIFI和蜂窝数据
本章节讲解如何使用swift连接网络,实时的监听到网络的状态,在主界面中进行调用,网络包含Wi-Fi 和 蜂窝。 1.封装一个判断是否有网络的类 2.在封装类注册通知 3.主界面接收注册通知,并且调用封装的网络类 4.成功测试,有…...
(三)Flink Source 数据源
Flink 数据源主要分为内置数据源和第三方数据源。其中内置数据源包含文件、Socket 连接、集合类型数据等,不需要引入其它依赖库。第三方数据源定义了 Flink 和外部系统数据交互的逻辑,Flink 提供了非常丰富的数据源连接器,例如 Kafka、Elasticsearch、RabbitMQ、JDBC 等。 …...

第四届机电一体化、自动化与智能控制国际学术会议(MAIC 2024)
目录 大会官网 会议简介 组织机构 大会主席 程序委员会主席 主讲嘉宾 征稿主题 参会说明 大会官网 http://www.icmaic.org 会议简介 第四届机电一体化、自动化与智能控制国际学术会议(MAIC 2024)将于2024年9月27-29日在中国成都召开。MAIC 20…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...