使用python处理srec/s19文件
一、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文件相关推荐
- abs.s19文件_ABS 1.2:后台命令和导入文件的功能
abs.s19文件 by Alex Nadalin 通过亚历克斯·纳达林 ABS 1.2:后台命令和导入文件的功能 (ABS 1.2: background commands & the ab ...
- 【VCU】详解S19文件(S-record)
目录 1. 概述 2. S-record格式 3. S-record类型 4. S19文件示例 5. 校验和计算示例 6. 参考 1. 概述 Motorola S-record是由Motorola创建 ...
- python批量pdf转word,python批量实现Word文件转换为PDF文件
本文为大家分享了python批量转换Word文件为PDF文件的具体方法,供大家参考,具体内容如下 1.目的 通过万能的Python把一个目录下的所有Word文件转换为PDF文件. 2.遍历目录 作者总 ...
- python怎样判断一个文件是否存在_python如何判断一个文件是否存在
python如何判断一个文件是否存在 发布时间:2020-09-23 11:38:42 来源:亿速云 阅读:82 作者:Leah python如何判断一个文件是否存在?针对这个问题,这篇文章详细介绍了 ...
- python怎么发送代码文件_python 通过 socket 发送文件的实例代码
目录结构: client: #!/usr/bin/env python # -*-coding:utf-8 -*- import socket, struct, json download_dir = ...
- 用Python打造一款文件搜索工具,所有功能自己定义
前言 在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用Python实现吗?本文将基于几个常见的搜索操作讲解. 扫描路径内的内容 ...
- 用python打造一款文件搜索工具,所有功能自己定义!
大家好,又到了python办公自动化系列.在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用python实现吗? 扫描路径内的内容 ...
- 把python语言翻译出来_Python语言实现翻译小工具(Python打包成exe文件)
本文主要向大家介绍了Python语言实现翻译小工具(Python打包成exe文件),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 1.环境 windows10 python3.5 ...
- Python判断两个文件夹中互相不同的文件有哪些、判断一个文件夹相对于另外一个文件夹缺少了哪些文件
Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些文件 目录 Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些 ...
最新文章
- MFC - 获取程序当前路径
- C#创建windows服务并定时执行
- caffe源码解析—image_data_layer层
- ASP.NET web.config
- SAP Spartacus开启SSR服务器端渲染之后,和默认客户端渲染的差异比较
- Pyinstaller打包: 将资源文件或文件夹打包到最后生成的exe中
- 蓝桥杯 ALGO-29 算法训练 校门外的树(区间处理)
- PCL之平面分割模型
- Rabbit-音乐欣赏
- Ubuntu12.04下apache服务器的安装也配置
- java scala中传递变长参数
- jsp内置对象之request
- Win 10 专业版重新激活详细操作步骤
- 保密计算机和移动存储介质台账,银行计算机和移动存储介质保密管理办法
- 图片降噪Topaz DeNoise AI 安装小技巧
- vbs整人小脚本(搞笑)
- Flutter中使用WebView内打开scheme链接 调用其他程序
- 下载后端传来的excel文件
- PAT甲级 英文单词汇总
- Win7安装补丁KB2670838