SREC

✍ dations ◷ 2025-09-13 22:38:13 #SREC

Motorola S-record是摩托罗拉公司所创立的档案格式,可以将二进制的资讯转换为用ASCII文字表示的十六进制资料,此档案格式也称为SRECORD、SREC、S19、S28、S37或MOT。此档案格式常用在微处理器的闪存资料写入,EPROM、EEPROM的资料写入,或是其他可编程逻辑元件的编程写入。一般的应用中,会用编译器或是组译器将程式的源代码(可能是C语言或是组合语言)转换为机器码,再输出为S-record或其他格式档案。烧录器可以读取这些档案,将机器码写入非挥发性内存中,或是截入到目的系统中,以便执行。

S-record档案格式是摩托罗拉公司在1970年代中期,为了摩托罗拉6800处理器所创的档案格式。针对摩托罗拉6800处理器及其他嵌入式系统的软件开发工具可以将可执行档及资料转换为S-record格式。PROM烧录器可以读取S-record,烧录到嵌入式系统的PROM或EPROM中。

也存在类似用途的其他ASCII档案格式。BPNF、BHLF及B10F是早期的二进制格式,不过档案较大,也没有可变性。十六进制格式用一个字元表示四个位元,相较于二进制格式用一个字元表示一个位元,档案比较精简。许多十六进制格式(包括S-record)的可变性较大,其中可以包括位址的资讯,因此其内容可以只对应PROM的一部分。Intel HEX格式常用在Intel的处理器上。Tek Hex是另一种HEX格式,其中包括了除错用的符号表。

SREC格式的档案包括一组的ASCII字元记录。记录从左到右的结构如下:

SREC记录之间会用一个或是多个ASCII字元的行分隔字元隔开,因此每一个记录就会占一行。此作法透过直观的分隔(英语:delimiter)记录来提高易读性,而且在HEX记录之间的填充也可以提高语法分析器的效率。

产生HEX的程式一般会依其操作系统的习惯使用对应的行分隔字元。例如,Linux程式会用单一的LF字元( 换行符号,16进制0A)作为一行的结尾,但Windows程式会用CR字元(回车符,16进制0D)之后接着LF字元,作为一行的结尾。

以下的表格说明十种可能出现的S-records,其中的S4保留,目前没有定义,S6一开始也是保留,后来有新的定义。

有些Unix文件中提到“档案中S-records的顺序不重要,不应假设其顺序。”,不过大部分产生SREC的软件都会按照次序排列S-records。一般的档案顺序会由一个(选择性)的S0档头记录,之后有一笔或是多笔S1/S2/S3资料记录,可能有一个S5/S6记录来说明记录个数,最后由一个适当的S7/S8/S9记录作结束。

记录长度:Unix手册中提到:“每个S-record记录的长度小于等于78个字元”。手册进一步的限制资料字段字元限制在64个字元(32个字节)以内。用8个字元表示位址的资料字段,若资料为64个字元,总长度为78个字元(2+2+8+64+2,此计算省略了记录尾端的终止符号或是换行符号)。这个档案可以用80字元宽的列表机打印。在手册下面有说明:“此说明只是针对记录总长度在78个字元的情形,不一定适用于所有情形。”。若省略此限制,S-record的最大长度为514字元:记录种类2个字元,字节数量2个位元(其值会是0xFF=255),以及位址、资料及检查码共2*255个字元。而且需要额外的空间储存换行符号以及字串结束字元。若记录长度太长,会有一些问题:“Motorola S-record格式定义允许一行到514个字元,另外加上行终结符号。EPROM烧录器需要有够大的行暂存器来处理这么长的资料,但有这么大暂存器的EPROM烧录器不多。”

资料字段:有些文件建议资料字段最长到32字节的资料(64个字元)。S0/S1/S2/S3的最小资料字段长度为0,最大资料资料字段长度视位址字段长度而定。因为字节数量最大值是255(0xFF),资料字段的长度为255减1(检查码)再减去位址字段的字节长度)。S0/S1 records最多可以到252字节的资料,S2 record最多可以到251字节的资料,S3 record最多可以到250字节的资料。

注解:SREC档案格式不支援注解,有些软件会省略开头不是S的资料行,也会省略检查码之后的字段,有时会有这些部分来写注解(但没有相容性)。例如CCS PIC编译器支援在Intel HEX(英语:Intel HEX)档案最前面或是最后面的行,前面加上分号当成注解,其手册提到:“有些烧录器(尤其是MPLAB)不喜欢在档案最前面出现注解,因此我们有选项,可以把注解放在档案后面。

  记录种类  字节数量  位址  资料  检查码

以下是一个记录的例子:

S1137AF00A0A0D0000000000000000000000000061

其检查码计算方式如下:

相关

  • 铝空气电池铝空气电池(Aluminium–air battery)是从空气中的氧气与铝的反应产生电能。它们的能量密度有所有电池中最高的能量密度之一,但它们没有被广泛使用,因为有很高的阳极成本和当使
  • 分光光度计分光光度法(英语:Spectrophotometry)是一门对光谱进行量化研究的分析方法。主要涉及的电磁波谱范围是可见光、近紫外线与近红外线。这种方法不同于电磁波谱与时间分辨光谱。将
  • 3号染色体3号染色体是人类基因组中的24种染色体(并组成23对)的其中之一。对一般人来说,细胞中会有1对3号染色体,分别来自父亲与母亲。这条染色体也是人体中第3大的染色体,拥有大约2亿个碱
  • 木村阳二郎木村阳二郎(日语:木村 陽二郎/きむら ようじろう ,1912年7月31日-2006年4月3日),日本植物学家、科学史家,专攻单子叶植物的生物分类、金丝桃属(Hypericum)的日本特有植物物种。师从中
  • 低电压指令低电压指令(LVD) 2006/95/EC是欧洲联盟最早提出的欧洲联盟指令之一。指令提供有关安全规范的共同广泛目标,因此由各欧盟成员国许可的电气设备可以在其他欧盟国家使用,在正常情形
  • 丰原药业安徽丰原药业股份有限公司(深交所:000153,英文:Anhui Fengyuan Pharmaceutical Co.,Ltd.,简称丰原药业),是中国深圳证券交易所的一家上市公司,成立于1997年8月30日,公司业务范围包括
  • Bada (歌手)Bada(韩语:바다;1980年2月28日-)本名崔盛希(韩语:최성희;英语:Choi Sung-hee),韩国女歌手,女子团体S.E.S.成员Sea,当时与H.O.T.、神话、Baby V.O.X、酷龙等团体把韩国音乐推广到国外,从这
  • JR四国1500系柴油动车组JR四国1500系柴联车是由日本四国旅客铁道 (JR四国)自2006年以来使用的柴联车(每组一节车)。 本型车行驶于下列线路。 截至2012年1月,乘客座位配置为2 + 2并排的翻背椅。 从2013年开始制造的车辆座椅配置,则为横向座椅与纵向长条椅混合。 1500系于2006年5月25日开始运行。 自2013年3月16日时刻表修订后,第七批制造的1566和1567号车投入使用。
  • 阿昙矶良阿昙矶良(アズミノイソラ)为日本神道的海神,亦是阿昙氏(安昙氏)的祖神,别名有矶武良等。记录石清水八幡宫缘起的《八幡愚童训》里出现“阿昙矶良是志贺海大明神”,可知此神为志贺海神社(今福冈县福冈市东区)之祭神(今改祀绵津见三神),同时自古以来阿昙氏便掌管该社祭祀之事。根据民间传说,阿昙矶良乃丰玉毘卖命之子,和天津日高日子波限建鹈草葺不合命为同一神;《八幡宫御缘起》亦提到矶良和春日大社祭祀的天儿屋根命乃同一神。《太平记》称阿昙矶良为“阿度部(あとべ)的矶良”,在神功皇后征伐三韩之际招来神明相助,阿度部的矶良躲
  • 尤通海门国家公园尤通海门国家公园(挪威语:Jotunheimen nasjonalpark)是挪威的一个国家公园,也是挪威屈指的登山和钓鱼胜地。尤通海门国家公园面积1,151平方公里,是尤通黑门山脉的一部分。