Motorola S-recordASCII 16SRECORDSRECS19S28S37EPROMEEPROM使 (C) 1616
S-record

Motorola S-Record形式のクイックリファレンスチャート (注意: レコードの例の画像では、単語「バイト」は文字を指定するために代わりに使用されている)。

拡張子.s19, .s28, .s37, .s, .s1, .s2, .s3, .sx, .srec, .mot, .mxt

概要

編集

歴史

編集

S-recordフォーマットは1970年代中頃にMotorola 6800プロセッサ用として開発された。Motorola 6800や他の組み込みプロセッサ向けのソフトウェア開発ツールを使用することで、S-recordフォーマットの実行可能なコードやデータを作成することができた。PROMプログラマにはS-recordフォーマットを読み込み、組み込みシステム中のPROMやEPROMにデータを書き込む機能があった。

その他の16進フォーマット

編集

SRECと同様の目的で開発されたASCIIエンコーディング形式が他にも存在する。BPNFBHLFおよびB10Fは早期に開発されたバイナリフォーマットだったが、データサイズが大きくなりがちで、柔軟性にも欠けていた。16進フォーマットは1キャラクタで1ビットではなく4ビットを表現するため、バイナリフォーマットよりもデータサイズを小さくすることができる。SRECといった16進フォーマットの多くがアドレス情報を含むため、PROMの一部を指定することができるという点で、バイナリフォーマットよりも柔軟な使用が可能である。Intel HEXフォーマットはIntel製プロセッサでしばしば使用された。TekHexは16進フォーマットの一種であり、デバッグ用にシンボルテーブルを含むことができる。

フォーマット

編集

レコード構造

編集
S タイプ バイト数 アドレス データ チェックサム

SRECASCII

(一) - "S" (ASCII 0x53) "Start-of-Record"[1]

(二) - "0""9"1

(三) - 216 ()  (16) 3 (1621)255 (0xFF) 

(四) - 46816

(五) - 2n16 (n)S1S2S31328016

(六) - 2162161#

テキスト行終端記号

編集

SREC1ASCII11

16使LinuxLF (ASCII0x0A) 使WindowsLFCR (ASCII0x0D) 使

レコードタイプ

編集

10S4S6
レコード
フィールド
レコードの
目的
アドレス
フィールド
データ
フィールド
レコードの
説明
S0 ヘッダ 16ビット
"0000"
  S0はベンダー固有のASCIIテキストのコメントから成り、16進数のペアの連なりで表現される。S0のデータはヌル終端文字列のフォーマットと見なすのが一般的である。ファイル/モジュール名、バージョン/リビジョン番号、日付/時刻、製品名、ベンダー名、PCBのメモリデジグネータ、著作権表示といった情報を組み合わせて含むことができる。
S1 データ 16ビット
アドレス
  S1は16ビットのアドレスフィールドで開始されるデータから成る[2]。普通、AVR、PIC、8051、68xx、6502、80xx、Z80などの8ビットのマイクロコントローラで使用される。データのバイト数はバイト数フィールドの値から3引いた値になる (2バイトは16ビットのアドレスフィールドに、1バイトはチェックサムフィールドに使用される)。
S2 データ 24ビット
アドレス
  S2は24ビットのアドレスフィールドで開始されるデータから成る[2]。データのバイト数はバイト数フィールドの値から4引いた値になる (3バイトは24ビットのアドレスフィールドに、1バイトはチェックサムフィールドに使用される)。
S3 データ 32ビット
アドレス
  S3は32ビットのアドレスフィールドで開始されるデータから成る[2]。普通、ARMや680x0などの32ビットのマイクロコントローラで使用される。データのバイト数はバイト数フィールドの値から5引いた値になる (4バイトは32ビットのアドレスフィールドに、1バイトはチェックサムフィールドに使用される)。
S4 予約 N/A N/A S4は予約されている。
S5 カウント 16ビット
カウント
  S5は任意のレコードであり、S1、S2、S3レコードの数を16ビットで示す[2]。レコード数が65,535 (0xFFFF) 以下であるときに使用される。65,535を超過する場合はS6レコードが使用される。
S6 カウント 24ビット
カウント
  S6は任意のレコードであり、S1、S2、S3レコードの数を24ビットで示す。レコード数が16,777,215 (0xFFFFFF) 以下の場合に使用される。65,536 (0x10000) 以下の場合はS5レコードが使用される。S6は最新の変更で追加されたものであり、公式扱いされないことがある[2]
S7 開始アドレス
(終端)
32ビット
アドレス
  S7は32ビットアドレスで開始実行位置を示す[2][3]。S3レコードの連なりの終端として使用される。SRECファイルがメモリデバイスのプログラミングにのみ使用され、実行位置が無視される場合、アドレスとして0を指定できる。
S8 開始アドレス
(終端)
24ビット
アドレス
  S8は24ビットアドレスで開始実行位置を示す[2][3]。S2レコードの連なりの終端として使用される。SRECファイルがメモリデバイスのプログラミングにのみ使用され、実行位置が無視される場合、アドレスとして0を指定できる。
S9 開始アドレス
(終端)
16ビット
アドレス
  S9は16ビットアドレスで開始実行位置を示す[2][3]。S1レコードの連なりの終端として使用される。SRECファイルがメモリデバイスのプログラミングにのみ使用され、実行位置が無視される場合、アドレスとして0を指定できる。

レコード順

編集

あるUNIXのドキュメントには、ファイル中のS-recordの順番に意味は無く、特定の順番は前提とされないだろうとある[2]。しかし、実際には、ほとんどのソフトウェアではSRECレコードに順序を付ける。普通、レコードは、任意の場合もあるが、S0ヘッダレコードから開始される。その後、1つ以上のS1、S2、S3データレコードが並び、任意でS5、S6カウントレコードが1つ配置され、最後に適切なS7、S8、S9終端レコードが1つ配置される。

S19スタイル16ビットアドレスレコード
  1. S0
  2. S1 (1つ以上)
  3. S5 (任意)
  4. S9
S28スタイル24ビットアドレスレコード
  1. S0
  2. S2 (1つ以上)
  3. S5 (任意)
  4. S8
S37スタイル32ビットアドレスレコード
  1. S0
  2. S3 (1つ以上)
  3. S5 (任意)
  4. S7

制限事項

編集

 - UNIXS-recordASCII1S7864 (32) [2]1686478 (2 + 2 + 8 + 64 + 2)  ()80[2]S-record51422 (0xFF = 255)2×255srec_catS-record255 (514) EPROMEPROM[4]

 - 32 (64) [2]S0S1S2S30255 (0xFF) 2551S0S1252S2251S3250

 - SREC"S"使CCS PICIntel HEX";"HEXHEX[5]
色凡例

  レコードタイプ   バイト数   アドレス   データ   チェックサム

チェックサム計算

編集


S1137AF00A0A0D0000000000000000000000000061

 ($) 16

(一): $13 + $7A + $F0 + $0A + $0A + $0D + $00 + ... + $00 = $019E

(二):  ($01) $9E

(三): 1$61Motorola 6800$FF

16-bit メモリアドレス

編集
S00F000068656C6C6F202020202000003C
S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026
S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9
S111003848656C6C6F20776F726C642E0A0042
S5030003F9
S9030000FC

関連項目

編集

出典

編集


(一)^ Wiles, Mike; Felix, Andre (2000-10-21). Holley, Michael. ed. MCM6830L7 MIKBUG / MINIBUG ROM (Engineering note). Motorola Semiconductor Products, Inc.. Note 100. 2019-06-16. https://web.archive.org/web/20190616115550/http://www.swtpc.com/mholley/MP_A/MikbugEn100.pdf 2019616  (23 pages)

(二)^ abcdefghijklMotorola S-records from Unix man pages. 2014630

(三)^ abcAppendix C. M68000 Family Programmer's Reference Manual (Revision 1 ed.). Motorola (Freescale). (1992). pp. C-1C-5. ISBN 978-0-13723289-5. http://www.freescale.com/files/archives/doc/ref_manual/M68000PRM.pdf 

(四)^ srec_examples. sourceforge.net. 202192

(五)^ CCS Compiler Reference Manual PCB/PCM/PCH, Custom Computer Services, Inc., (May 2014), p. 107, http://www.ccsinfo.com/downloads/ccs_c_manual.pdf 201528 

参考文献

編集

2.8. Microprocessor Formats 2.8.1. Input Requirements: Motorola Exorciser Format. Select Code 82. Operator Guide To Serial I/O Capabilities of Data I/O Programmers - Translation Format Package (Revision C ed.). Data I/O Corporation. (October 1980). p. 2-9. 055-1901. 2020-03-01. https://web.archive.org/web/20200301134810/http://bitsavers.trailing-edge.com/test_equipment/dataIO/055-1901_System19_transPkg.pdf 202031 

 M1468705EVM Evaluation Module User's Manual (1 ed.). Motorola Inc.. (December 1983). M1468705EVM/Dl. https://archive.org/details/bitsavers_motorola68ionModuleUsersManualDec83_3216374 202031  [1][2]

 Translation File Formats. Data I/O Corporation. (1987-09-03). 2020-03-01. https://web.archive.org/web/20200301114550/http://webcache.googleusercontent.com/search?q=cache:wC7iuE425G4J:ftp://ftp.dataio.com/main/Manuals/UniFam/Translation%252520Formats.pdf+&cd=21&hl=de&ct=clnk&gl=de&client=firefox-b-d 202031  [3] (56 pages)

1.8.5. Lochstreifen-Datenformate: Das Motorola-S-Format [1.8.5. Paper tape data formats] (). Arbeitsbuch Mikrocomputer [Microcomputer work book] (2 ed.). Munich, Germany: Franzis-Verlag GmbH. (1987). pp. 240243 [242]. ISBN 3-7723-8022-0 

Appendix A. S Record Information. M68HC05EVM Evaluation Module User's Manual (4 ed.). Motorola. (1990). p. A-1. 2015-02-11. https://web.archive.org/web/20150211202356/http://www.68bits.com/M68HC05EVM.pdf. "[] For compatibility with teletypewriters, some programs may limit the number of [data] bytes to as few as 28 (56 printable characters in the S-record). []" 

How Do I Interpret Motorola S & Intel HEX Formatted Data? Motorola S-records. Home > Hardware >  > In-circuit Test Systems > Automated Test Equipment [Discontinued] > Details. Keysight Technologies. 202031202031

Motorola S-record Format. Lucid Technologies (2016). 20202282020228

The S Hexdump Format. IETF (200510). 202031202031

外部リンク

編集
  • RFC 4194 - The S Hexdump Format - IETF
  • SRecord - SRECフォーマットのファイルを操作するためのツール群
  • BIN2MOT - バイナリファイルをSRECファイルに変換するためのユーティリティ
  • SRecordizer - S19フォーマットのファイルを閲覧、編集、エラーチェックするためのツール
  • bincopy - SRECフォーマットのファイルを操作するためのPythonのパッケージ
  • kk_srec - SRECフォーマットを読み込むためのC言語のライブラリ