「インテルHEX フォーマット」の編集履歴(バックアップ)一覧はこちら
「インテルHEX フォーマット」(2007/09/21 (金) 11:52:06) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
ROMライターなどで利用されている、HEXフォーマットです。
----
1バイトデータについて
すべてASCIIコードで示す。
1バイトデータ例
00 = 30h30h
FF = 46h46h
----
レコード構造
|BGCOLOR(Lavender):a,スタート・マーク|BGCOLOR(Lavender):b,バイト・カウント|BGCOLOR(Lavender):c,アドレス|BGCOLOR(Lavender):d,レコード・タイプ|BGCOLOR(Lavender):e,データ|BGCOLOR(Lavender):f,チェックサム|
|:|NN|A3 A2 A1 A0|RR|D0 D1 D2 ~ Dn|S1 S2|
レコード説明
|BGCOLOR(Lavender):a,スタート・マーク|”:” レコードの始まり|
|BGCOLOR(Lavender):b,バイト・カウント|2文字&br() データバイト桁数を表す。(ビック・エンディアン)&br() 容量は、0~255まで指定可能&br() (レコード桁数”00”でエンドコードと判断します。)|
|BGCOLOR(Lavender):c,アドレス|4文字&br() データの先頭アドレスを示す。(ビック・エンディアン)&br() レコード・タイプによってアドレス計算が必要です。|
|BGCOLOR(Lavender):d,レコード・タイプ|2文字&br()00:データ・レコード&br() 書き込まれるべきデータ&br()01:エンド・レコード&br() HEXファイルの終了を示す。&br() b,バイト・カウントは、00になる。&br()02:拡張アドレス・レコード&br() e,データにセグメントアドレスが入る。&br()03:スタートセグメント・レコード&br()04:拡張リニアアドレス・レコード&br()05:スタートリニアアドレス|
|BGCOLOR(Lavender):e,データ|2文字(1データ)&br() 1バイトのデータを示す。|
|BGCOLOR(Lavender):f,チェックサム|2文字&br() 計算式: (NOT(b+c+d+e) AND 0xFF)+1&br() b+c+d+eの各バイトの2の補数|
1.拡張アドレス・レコード レコード・タイプ[:02]
|BGCOLOR(Lavender):a,スタート・マーク|BGCOLOR(Lavender):b,バイト・カウント|BGCOLOR(Lavender):c,アドレス|BGCOLOR(Lavender):d,レコード・タイプ|BGCOLOR(Lavender):e,データ|BGCOLOR(Lavender):f,チェックサム|
|:|02|0000|02|A3 A2 A1 A0|S1 S2|
インテルHEXのアドレス範囲を16ビットから20ビットに拡張します。
絶対アドレス=[拡張アドレス × 16] + [データレコードアドレス]
例: 23456 ~ 23459番地の内容出力
:020000022000DC ← 拡張レコード
:04345600FFFFFFFF76 ← データレコード
:00000001FF ← エンドデータ
絶対アドレス = 2000h + 3456h = 23456h&br()
|||
2.レコード・データ レコード・タイプ[:00]
|BGCOLOR(Lavender):a,スタート・マーク|BGCOLOR(Lavender):b,バイト・カウント|BGCOLOR(Lavender):c,アドレス|BGCOLOR(Lavender):d,レコードタイプ|BGCOLOR(Lavender):e,データ|BGCOLOR(Lavender):f,チェックサム|
|:|nn|A3 A2 A1 A0|00|D0 D1 D2 D3 ~ Dn|S1 S2|
3.エンド・レコード レコード・タイプ[:01]
|BGCOLOR(Lavender):a,スタート・マーク|BGCOLOR(Lavender):b,バイト・カウント|BGCOLOR(Lavender):c,アドレス|BGCOLOR(Lavender):d,レコードタイプ|
|:|00|A3 A2 A1 A0|01|
ROMライターなどで利用されている、HEXフォーマットです。
----
1バイトデータについて
すべてASCIIコードで示す。
1バイトデータ例
00 = 30h30h
FF = 46h46h
----
レコード構造
|BGCOLOR(Lavender):a,スタート・マーク|BGCOLOR(Lavender):b,バイト・カウント|BGCOLOR(Lavender):c,アドレス|BGCOLOR(Lavender):d,レコード・タイプ|BGCOLOR(Lavender):e,データ|BGCOLOR(Lavender):f,チェックサム|
|:|NN|A3 A2 A1 A0|RR|D0 D1 D2 ~ Dn|S1 S2|
レコード説明
|BGCOLOR(Lavender):a,スタート・マーク|”:” レコードの始まり|
|BGCOLOR(Lavender):b,バイト・カウント|2文字&br() データバイト桁数を表す。(ビック・エンディアン)&br() 容量は、0~255まで指定可能&br() (レコード桁数”00”でエンドコードと判断します。)|
|BGCOLOR(Lavender):c,アドレス|4文字&br() データの先頭アドレスを示す。(ビック・エンディアン)&br() レコード・タイプによってアドレス計算が必要です。|
|BGCOLOR(Lavender):d,レコード・タイプ|2文字&br()00:データ・レコード&br() 書き込まれるべきデータ&br()01:エンド・レコード&br() HEXファイルの終了を示す。&br() b,バイト・カウントは、00になる。&br()02:拡張アドレス・レコード&br() e,データにセグメントアドレスが入る。&br()03:スタートセグメント・レコード&br()04:拡張リニアアドレス・レコード&br()05:スタートリニアアドレス|
|BGCOLOR(Lavender):e,データ|2文字(1データ)&br() 1バイトのデータを示す。|
|BGCOLOR(Lavender):f,チェックサム|2文字&br() 計算式: (NOT(b+c+d+e) AND 0xFF)+1&br() b+c+d+eの各バイトの2の補数|
1.拡張アドレス・レコード レコード・タイプ[:02]
|BGCOLOR(Lavender):a,スタート・マーク|BGCOLOR(Lavender):b,バイト・カウント|BGCOLOR(Lavender):c,アドレス|BGCOLOR(Lavender):d,レコード・タイプ|BGCOLOR(Lavender):e,データ|BGCOLOR(Lavender):f,チェックサム|
|:|02|0000|02|A3 A2 A1 A0|S1 S2|
インテルHEXのアドレス範囲を16ビットから20ビットに拡張します。
絶対アドレス=[拡張アドレス × 16] + [データレコードアドレス]
例: 23456 ~ 23459番地の内容出力
:020000022000DC ← 拡張レコード
:04345600FFFFFFFF76 ← データレコード
:00000001FF ← エンドデータ
絶対アドレス = 2000h + 3456h = 23456h&br()
|||
2.レコード・データ レコード・タイプ[:00]
|BGCOLOR(Lavender):a,スタート・マーク|BGCOLOR(Lavender):b,バイト・カウント|BGCOLOR(Lavender):c,アドレス|BGCOLOR(Lavender):d,レコードタイプ|BGCOLOR(Lavender):e,データ|BGCOLOR(Lavender):f,チェックサム|
|:|nn|A3 A2 A1 A0|00|D0 D1 D2 D3 ~ Dn|S1 S2|
3.エンド・レコード レコード・タイプ[:01]
|BGCOLOR(Lavender):a,スタート・マーク|BGCOLOR(Lavender):b,バイト・カウント|BGCOLOR(Lavender):c,アドレス|BGCOLOR(Lavender):d,レコードタイプ|
|:|00|A3 A2 A1 A0|01|
[[㈱システム電子設計へ戻る>http://www.system-ed.co.jp/]]