一、s19文件

Motorola S-record是由Motorola创建的一种文件格式,它以 ASCII十六进制文本形式传送二进制信息。这种文件格式也可以称为SRECORD、SREC、S19、S28、S37。

S-record 格式文件由一系列 ASCII 文本记录组成。这些记录从左到右具有以下结构:

type count address data checksum

S19文件行格式
type(记录类型):2个字符,一个大写的"S"(0x53),然后是一个数字0~9,定义了记录的类型 (S0,S1,S2,S3,S5,S7,S8,S9)。

count(字节计数):2个字符,16进制数字,表示记录的其余部分(address + data + checksum)的字节数(16进制数字对)。

address(地址):4或6或8个字符。由记录类型 type 决定。对于S1和S9类型(S19),地址字段为 4 个十六进制数字(2 个字节)。对于S2和S8 record(S28),地址字段为 6 个十六进制数字(3个字节),对于S3和S7 record(S37),地址字段为 8 个十六进制数字(4 个字节)。地址首先以 MSB 发送。地址字节以大端格式排列。

data(数据):0—64字符。用来组成和说明一个代表了内存载入数据或者描述信息的16进制的值。

checksum(校验和):2个字符。这些字符当被配对并换算成16进制数据的时候形成了一个最低有效字符 节,该字符节用来表达作为补充数据,地址和数据库的字符对所代表的(字节的)补码的byte总和。

二、使用python解析s19文件

S3数据记录了包含从 32 位地址开始的数据,以下示例解析S3数据。

1.打开一个s19文件

# 打开一个S19文件
with open(file='test.s19', mode='r') as s19_file:

2.读取一行数据

# 读取一行数据
for s19_line in s19_file.readlines():

3.将读取的行数据去除换行符

# 去除该行的换行符
s19_line_data = s19_line.strip()
print(s19_line_data)

输出结果

4.获取type类型

# 获取type
s19_type = s19_line_data[0:2]
print(s19_type)

使用切片获取前两个字符 ,输出的结果

5.获取count

s19_count = int(s19_line_data[2:4],16)
print(s19_count)

使用切片获取字节计数count,使用int()函数将字符串转换为整型

输出结果

6.获取address

# 获取address
s19_address = int(s19_line_data[4:12],16)
print(hex(s19_address))

使用切片获取地址address,使用int()函数将字符串转换为整型

输出的时候使用hex()函数将地址转换为16进制字符串

7.获取data

# 获取数据
s19_data = s19_line_data[12:12+(s19_count-5)*2]
# 将字符串转换为hex数组
s19_data_ba = bytearray.fromhex(s19_data)
print(s19_data_ba)

使用切片获取数据,使用bytearray.fromhex()方法将16进制字符串转换为bytearray数组

输出结果

8.S3数据解析示例

使用python处理srec/s19文件相关推荐

  1. abs.s19文件_ABS 1.2:后台命令和导入文件的功能

    abs.s19文件 by Alex Nadalin 通过亚历克斯·纳达林 ABS 1.2:后台命令和导入文件的功能 (ABS 1.2: background commands & the ab ...

  2. 【VCU】详解S19文件(S-record)

    目录 1. 概述 2. S-record格式 3. S-record类型 4. S19文件示例 5. 校验和计算示例 6. 参考 1. 概述 Motorola S-record是由Motorola创建 ...

  3. python批量pdf转word,python批量实现Word文件转换为PDF文件

    本文为大家分享了python批量转换Word文件为PDF文件的具体方法,供大家参考,具体内容如下 1.目的 通过万能的Python把一个目录下的所有Word文件转换为PDF文件. 2.遍历目录 作者总 ...

  4. python怎样判断一个文件是否存在_python如何判断一个文件是否存在

    python如何判断一个文件是否存在 发布时间:2020-09-23 11:38:42 来源:亿速云 阅读:82 作者:Leah python如何判断一个文件是否存在?针对这个问题,这篇文章详细介绍了 ...

  5. python怎么发送代码文件_python 通过 socket 发送文件的实例代码

    目录结构: client: #!/usr/bin/env python # -*-coding:utf-8 -*- import socket, struct, json download_dir = ...

  6. 用Python打造一款文件搜索工具,所有功能自己定义

    前言 在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用Python实现吗?本文将基于几个常见的搜索操作讲解. 扫描路径内的内容 ...

  7. 用python打造一款文件搜索工具,所有功能自己定义!

    大家好,又到了python办公自动化系列.在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用python实现吗? 扫描路径内的内容 ...

  8. 把python语言翻译出来_Python语言实现翻译小工具(Python打包成exe文件)

    本文主要向大家介绍了Python语言实现翻译小工具(Python打包成exe文件),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 1.环境 windows10 python3.5 ...

  9. Python判断两个文件夹中互相不同的文件有哪些、判断一个文件夹相对于另外一个文件夹缺少了哪些文件

    Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些文件 目录 Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些 ...

最新文章

  1. MFC - 获取程序当前路径
  2. C#创建windows服务并定时执行
  3. caffe源码解析—image_data_layer层
  4. ASP.NET web.config
  5. SAP Spartacus开启SSR服务器端渲染之后,和默认客户端渲染的差异比较
  6. Pyinstaller打包: 将资源文件或文件夹打包到最后生成的exe中
  7. 蓝桥杯 ALGO-29 算法训练 校门外的树(区间处理)
  8. PCL之平面分割模型
  9. Rabbit-音乐欣赏
  10. Ubuntu12.04下apache服务器的安装也配置
  11. java scala中传递变长参数
  12. jsp内置对象之request
  13. Win 10 专业版重新激活详细操作步骤
  14. 保密计算机和移动存储介质台账,银行计算机和移动存储介质保密管理办法
  15. 图片降噪Topaz DeNoise AI 安装小技巧
  16. vbs整人小脚本(搞笑)
  17. Flutter中使用WebView内打开scheme链接 调用其他程序
  18. 下载后端传来的excel文件
  19. PAT甲级 英文单词汇总
  20. Win7安装补丁KB2670838

热门文章

  1. ubuntu 麒麟20.04使用技巧记录
  2. python怎么制作条形图模板,Python-使用XlsxWriter模块在Excel工作表中绘制条形图
  3. IP头以及头的各部分含义
  4. leetcode35.搜素插入位置
  5. 最详细的计算机网络思维导图 谢希仁(第七版)——第一章
  6. ARP工作原理以及ARP欺骗、中间人攻击
  7. 论信息系统的安全性与保密性设计
  8. uniapp app端 ios 安卓 附件上传踩得坑
  9. linux硬盘故障注入,用软件中断实现的Linux内核故障注入方法.pdf
  10. 辞职社保如何无缝衔接