[整理]S-Record数据格式解析
S-Reord是一种由摩托罗拉公司创建的文件格式(不得不说,摩托罗拉厉害啊,SPI和S-Record都是他们创造的)。S-Record的基本字符为ASCII字符,用以表示相应的十六进制数据。该数据格式还有以下的几种名字或缩写SRECORD, SREC, S19, S28, S37。S-Record格式多用在存储类芯片,Flash、EPROMs、EEPROMs等。
本文主要介绍S-Record格式及其各部分所代表的含义,更多详细的介绍可以看本文资料主要来源,Wikipedia--SREC (file format)。
S-Record格式详解
在维基百科上看到的这幅图把S-Record格式表达的十分完善,在此引用一下。

注意:
- 此图中的每一个格子表示一个字符,其中在中间一条主格式下面的2 Bytes表示两个字符,其真实存储时为两个字符(一个字符的ASCII码为一个字节)。
- 在下方粉红色部分下的括号,16 bits表示的是一个方框中符号对应的二进制数。比如'F'就对应0xF(1111)。
S-Record数据按行进行存贮。其主要分为以下几个部分:
- type:类型,主要有S0-S3, S5, S7-S9等几种模式。
- count:长度,主要表示该部分之后有多少字节长度的数据(一个字节表示两个字符)。
- address:数据写入的起始地址,主要根据类型有着不同的地址长度,其采用big endian大端模式(高位在前)存储。
- data:数据,一行S-Record中的数据,其长度由type和count共同决定。可以按照如下方式进行计算(单位Byte):< count > - < address >(取值为2、3、4) - 1(< checksum >字段的长度)
- checksum:校验和,用于校验整行数据是否正确。
该图中左下角部分表示了不同类型下地址区的长度和不同类型的数据格式。注意:纵观整幅图,含有数据的几种格式为S0-S3, S5,其他模式均无数据的存在。
示例
数据:S1137AF00A0A0D0000000000000000000000000061
拆解:S1 - 13 - 7AF0 - 0A0A0D00000000000000000000000000 - 61
- 类型为S1
- 长度为0x13 = 19
- 根据S1的数据格式,可以知道count后2 Bytes为address数据(7AF0)
- 最后一个字节为校验位(61)
- 剩余部分为数据位(0A0A0D00000000000000000000000000)
有关checksum校验的计算,还是以上述为例,
- 相加,0x13 + 0x7A + 0xF0 + ... + 0x00 = 0x19E
- 取后两个字节0x9E
- 0xFF - 0x9E即可得到校验值0x61
[整理]S-Record数据格式解析的更多相关文章
- InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析
InnoDB锁机制之Gap Lock.Next-Key Lock.Record Lock解析 有意思,解释的很好
- RAW数据格式解析
RAM数据格式解析 Raw格式是sensor的输出格式,是未经处理过的数据,表示sensor接受 到的各种光的强度. Raw数据在输出的时候是有一定的顺序的,一般为以下四种: 00: GR/BG 01 ...
- android JSON数据格式 解析
一. JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. Json建构于两种结构: 最后再加一种格式在文章的最后显示出来非常少有的格式 ...
- 类xml数据格式解析
需要解析一种类xml的数据文件,数据格式1如下: <head> //文件头 <type>xtype</type> <condition> key1=va ...
- Android数据格式解析对象JSON用法
1.JSON概念: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON可以将 ...
- Android数据格式解析对象JSON用法(转)
地址:http://www.cnblogs.com/devinzhang/archive/2012/01/09/2317315.html 里面的重点: JSON解析案例 (1)解析Object ...
- 【转载,整理】域名CNAME解析配置,使用域名B作为域名A的CNAME记录值
最近有个需求,未备案的域名A,想解析到香港 或 国内的服务器上,但是由于未备案,直接使用cdn解析在国内访问会很慢 但是不想直接直接到ip,所以找到两个方法可以解决: 方案一:转移到其他服务器做301 ...
- OC封装的TLV数据格式解析库
作者:朱克锋 邮箱:zhukefeng@iboxpay.com 转载请注明出处:http://blog.csdn.net/linux_zkf TLV是一种可变格式,意思就是: Type类型, Leng ...
- MySQL InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析
MySQL InnoDB支持三种行锁定方式: l 行锁(Record Lock):锁直接加在索引记录上面,锁住的是key. l 间隙锁(Gap Lock):锁定索引记录间隙,确保索引记录的间隙 ...
随机推荐
- mac 10.9 安装 gevent
安装步骤: Gevent依赖libevent和greenlet,需要分别安装. 1,安装 macport (如已安装,可以跳过) 2,通过终端 键入: sudo port install libeve ...
- RSA加密算法总结
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准. RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进 ...
- 4、IMS
链:1:http://www.cnblogs.com/gnuhpc/archive/2012/12/11/2813494.html [笔记] 1.<计算机网络(第五版)>P10-15:电路 ...
- Android常用控件及对应Robotium API
最近发现Android控件不熟悉,看Robotium的API都费劲. 常用Android控件: 控件类型 描述 相关类 Button 按钮,可以被用户按下或点击,以执行⼀个动作 Button Text ...
- NHibernate系列文章二十四:NHibernate查询之Linq查询(附程序下载)
摘要 NHibernate从3.0开始支持Linq查询.写Linq to NHibernate查询就跟写.net linq代码一样,非常灵活,可以很容易实现复杂的查询.这篇文章使用Linq to NH ...
- Windows Server 2008 R2 服务器安装(重装)流程备忘
系统相关 一.安装Windows Server R2 (略) 二.激活系统:Windows Loader 三.创建域 (自行参考: http://www.cnblogs.com/zhongweiv/a ...
- linux网络学习
ipv4报文处理流程 1.物理层网卡收到报文,产生中断进入中断处理程序:net_interrupt,判断中断是由接收到分组引发后,控制权转移到net_rx: 2.net_rx函数分配一个新的sk_bu ...
- Js日期函数Date格式化扩展
prototype是向对象中添加属性和方法,返回对象类型原型的引用,例如对js中日期函数Date进行扩展: Date.prototype.Format = function (fmt) { var o ...
- <读书笔记> 代码整洁之道
概述 1.本文档的内容主要来源于书籍<代码整洁之道>作者Robert C.Martin,属于读书笔记. 2.软件质量,不仅依赖于架构和项目管理,而且与代码质量紧密相关,本书提出一 ...
- Delphi JCL JEDI使用 jclDebug
开源 https://github.com/project-jedi/jcl jclDebug 下载jcl,还要下载https://github.com/project-jedi/jedi里的2个in ...