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

【嵌入式烧录刷写文件】-1.10-为一个Motorola S-record(S19/SREC/mot/SX)文件计算“校验和Checksum”

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

有如下一段Motorola S-record(S19/SREC/mot/SX)文件,为其创建Checksum校验和:CRC16CRC32(CVN)SHA-256 Hash算法…,将Checksum Value填充到指定地址。

S0110000486578766965772056312E30352EA6
S123910058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775B
S123912078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F90919293949596973B
S123914098999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B71B
S1239160B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7FB
S1239180D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7DB
S12391A0F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F1011121314151617BB
S12391C018191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30313233343536379B
S10B91E038393A3B3C3D3E3FA7
S9030000FC

目录

1 使用Vector HexView工具实现: Motorola S-record(S19/SREC/mot/SX)文件计算Checksum校验和

1.1 “自动”计算Checksum校验和

1.2 “手动”计算Checksum校验和

1.3 Command line命令行说明

结尾


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

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

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

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

1 使用Vector HexView工具实现: Motorola S-record(S19/SREC/mot/SX)文件计算Checksum校验和

1.1 “自动”计算Checksum校验和

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

图1-1

Application.s19摘录:

S0110000486578766965772056312E30352EA6
S123910058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775B
S123912078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F90919293949596973B
S123914098999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B71B
S1239160B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7FB
S1239180D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7DB
S12391A0F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F1011121314151617BB
S12391C018191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30313233343536379B
S10B91E038393A3B3C3D3E3FA7
S9030000FC

S19_To_Checksum.bat摘录:

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

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

S123910058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775B
S123912078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F90919293949596973B
S123914098999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B71B
S1239160B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7FB
S1239180D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7DB
S12391A0F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F1011121314151617BB
S12391C018191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30313233343536379B
S10F91E038393A3B3C3D3E3F0F88DB141D
S9030000FC

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

%HexViewPath% /S %Input_S19_File% /CSR9:@0x91E8;[0x9100-0x91E7] /XS:32:0 -o %Output_S19_File%

1.2 “手动”计算Checksum校验和

使用Vector Hexview工具打开S19文件,接着在菜单栏中依次选择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博客“汽车电子助手,做您的好助手。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Java学习】实现图书管理系统
  • 探索DevExpress WinForms:.NET世界中的UI库之星
  • 【JAVA入门】Day22 - 包装类
  • 无字母数字绕过正则表达式
  • 企业内耗的解决策略:打造活力四溢的文化社区
  • Python 加载 TensorFlow 模型
  • 如何复现Github上的项目以及conda的常用操作指令
  • python opencv实时视频输入
  • 数据可视化之旅,从数据洞察到图表呈现,可视化的产品设计
  • 【面试最常考算法】哈希表专题
  • 《AI办公类工具PPT系列之二——iSlide AI》
  • PHP-FPM未授权访问漏洞
  • 【整理】后端接口设计和优化相关思路汇总
  • 【C++】单例模式的解析与应用
  • Centos7离线安装Sumo全过程(xerces-c、Cmake、gymnasium等)
  • JS 中的深拷贝与浅拷贝
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • interface和setter,getter
  • Javascript编码规范
  • Redash本地开发环境搭建
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 浮动相关
  • 给github项目添加CI badge
  • 容器服务kubernetes弹性伸缩高级用法
  • 通过npm或yarn自动生成vue组件
  • 详解NodeJs流之一
  • ionic入门之数据绑定显示-1
  • ​TypeScript都不会用,也敢说会前端?
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #define、const、typedef的差别
  • #if等命令的学习
  • #mysql 8.0 踩坑日记
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (层次遍历)104. 二叉树的最大深度
  • (二十三)Flask之高频面试点
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (四)stm32之通信协议
  • *算法训练(leetcode)第四十天 | 647. 回文子串、516. 最长回文子序列
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Micro Framework初体验
  • .NET NPOI导出Excel详解
  • .net连接MySQL的方法
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .NET下的多线程编程—1-线程机制概述
  • /var/log/cvslog 太大
  • @Transactional事务注解内含乾坤?
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [001-03-007].第07节:Redis中的管道
  • [20171113]修改表结构删除列相关问题4.txt
  • [Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解
  • [BUAA软工]第一次博客作业---阅读《构建之法》