SREC

✍ dations ◷ 2025-06-28 10:16:54 #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

其检查码计算方式如下:

相关

  • 哈奴曼哈奴曼(梵语:हनुमान्;Hanuman),或译哈努曼、哈鲁曼,印度史诗《罗摩衍那》中的神猴,拥有四张脸和八只手,与罗刹恶魔罗波那大战,解救阿逾陀国王子罗摩之妻悉多。罗摩是大神毗湿
  • 奥斯卡最佳影片奖奥斯卡最佳影片奖(英语:Academy Award for Best Picture),由美国电影艺术与科学学院通过业内人士投票,颁给每年得票最高的电影,奥斯卡金像奖之一。此奖项起初被称为最佳作品奖(Best
  • 乌兹别克苏维埃社会主义共和国乌兹别克苏维埃社会主义共和国(乌兹别克语:Ўзбекистон Совет Социалистик Республикаси;俄语:Узбекская Советская
  • 2018年中国西部特大暴雨2018年中国西部特大暴雨,是指2018年5月中旬开始到7月中旬,中华人民共和国四川省、陕西省、甘肃省等遭遇的强降雨灾害天气。暴雨天气导致四川、陕西、甘肃、重庆多地出现严重洪
  • 米拉·库尼斯米拉·库尼斯(英语:Mila Kunis,1983年8月14日-),原名米拉·马克奥薇娜·库尼斯(英语:Milena Markovna Kunis,俄语:Милена Маркοвна Кунис,乌克兰语:Мілена М
  • 杨成 (天顺进士)杨成,字成玉,福建福州府闽县人,明朝政治人物、进士出身。天顺六年,福建壬午乡试中举。天顺八年,登甲申科会试中进士。成化年间,担任扬州府知府。
  • 吓跑 (歌曲)《吓跑》(英语:"Running Scared",也译为《惊慌逃跑》)是由阿塞拜疆双人组合艾尔与妮基演唱,于2011年5月27日发行的单曲。《吓跑》由史蒂芬·恩(英语:Stefan Örn)、桑德拉·彼尤曼(Sandra Bjurman)、伊恩·詹姆斯(英语:Iain James)共同创作,并代表阿塞拜疆登上了德国杜塞尔多夫举办的2011年欧洲歌唱大赛。最终歌曲以221分获得比赛冠军,艾尔与妮基不仅成为了自1963年以来首位夺冠的男女混搭二人组合,也是阿塞拜疆的首位欧洲歌唱大赛冠军。《吓跑》以C大调创作,
  • 半藏森林半藏森林,本名胡文婕。是一名签约艺人、平面模特。因拍摄平面写真作品而广受欢迎和争议,在新浪微博有237万人关注。半藏森林毕业于重庆文理学院,爱好音乐以及cosplay,从事平面模特工作。2019年11月19日,阿沁(女,抖音主播)因其情侣刘阳(男,美拍主播)出轨半藏森林,使得半藏森林引发关注。同年11月20日,半藏森林在微博上发文道歉;22日被其所属的蜜桃传媒正式解约。半藏森林的新浪微博
  • 梨园梨园是戏班的别称。历史上,梨园原本是唐朝皇帝游乐的地方,举行的活动包括拔河、打球等。唐玄宗自作新曲名曰“道调法曲”,曾选伶人三百人在禁院梨园中歌舞,“声有误者,帝必觉而正之”,《霓裳羽衣曲》在梨园亦有表演。后遂称戏班为梨园,称戏曲演员为“梨园子弟”。有时也称京剧为梨园。一说梨园的最高长官为崖公。梨园的乐官还有梨园教坊使、梨园使、梨园判官、梨园供奉官,都是高级管理者,由宦官担任。另外都知是低级乐官,由具备音乐才能的乐人担任,后因乐官过多,无法管理,在都知之上,又设都都知一职。安史之乱后,梨园逐渐衰落,白居易
  • 公孙丑公孙丑(?-?),战国时齐国人,孟子弟子,终身未仕。公孙丑与孟子关系密切,常侍孟子左右,是《孟子》的主要作者之一,其中并有一篇以其名命名。北宋政和五年(1115年),公孙丑被诏封为寿光伯。著有《公孙子》一书,现已失传。陵墓在今山东省曲阜市陵城镇,为曲阜市文物保护单位。在孟子死后,孟仲子等许多昔日孟子弟子便以公孙丑为师。《韩非子》书中曾提及儒家在孔子逝后可分为八个派别,其中一系即为“孙氏之儒”或称“公孙氏之儒”,可能就是指公孙丑与其门生,属于传《易经》之儒。孟子曾在齐国作客卿,公孙丑常侍孟子左右。公孙丑问孟