加藤/研究/進捗状況/.hexファイルへの変換
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[加藤/研究/進捗状況]]
**.hexファイルへの変換 [#r582f8cc]
***インテルHEX形式について [#k5061a11]
プログラムイメージ(コードとデータを表す16進数列)
例
:llaaaattdddd....ddddss\r\n
ll(データの長さ:バイト単位)aaaa(データレコードのアドレス:バイト単位)tt(レコードのタイプ)dddd....dddd(16進数データ)ss(チェックサム)
(データの長さ:バイト単位)(データレコードのアドレス:バイト単位)
-行頭にはコロン(:)が挿入される
-次の2桁の16進数は、データの長さを表す(バイト単位)
-次の4桁の16進数は、データレコードのアドレス
-次の2桁の16進数は、レコードのタイプ
--タイプ0:データレコード
--タイプ1:ファイル終了レコード~
→''最後に必ず出力''
--タイプ2:アドレスレコード(ESA)
--タイプ3:開始アドレスレコード
--タイプ4:アドレスレコード(ELA)
-次の部分は、16進数データ
-最後の2桁の16進数はチェックサム
--レコード内のすべての16進数値を合計した時、下位2桁がh'00になるように設定する~
***実際の.hexファイル [#i10e6518]
Instruction Memoryの場合
アセンブラ出力機械語 In-System MemoryからExportしたコード
2080 :0200000020805E
2400 :020001002400D9
2800 :020002002800D4
2c00 :020003002C00CF
2100 :020004002100D9
2500 :020005002500D4
2907 :020006002907C8
2dff :020007002DFFCB
3308 :020008003308BB
3302 :020009003302C0
5000 :02000A005000A4
4400 :02000B004400AF
330a :02000C00330AB5
3315 :02000D003315A9
5000 :02000E005000A0
4500 :02000F004500AA
...........
:0203FF000000FC
:00000001FF(ファイルの終了)
-データ長:02
-アドレス:0000〜03ff
-タイプ:00
-データ:機械語に翻訳されたデータ
-チェックサム:
データ長+アドレス+タイプ+データ+チェックサム
=2'h00になるように計算
Data Memoryの場合
-データ長:04
-アドレス:0000〜07ff
-タイプ:00
-データ:機械語に翻訳されたデータ
-チェックサム:
データ長+アドレス+タイプ+データ+チェックサム
=2'h00になるように計算
~
-------
フォーマットに合うように機械語ファイルを.hexファイルに変換する~
→C言語で書く~
→芳賀さんのコードを見ながら
終了行:
[[加藤/研究/進捗状況]]
**.hexファイルへの変換 [#r582f8cc]
***インテルHEX形式について [#k5061a11]
プログラムイメージ(コードとデータを表す16進数列)
例
:llaaaattdddd....ddddss\r\n
ll(データの長さ:バイト単位)aaaa(データレコードのアドレス:バイト単位)tt(レコードのタイプ)dddd....dddd(16進数データ)ss(チェックサム)
(データの長さ:バイト単位)(データレコードのアドレス:バイト単位)
-行頭にはコロン(:)が挿入される
-次の2桁の16進数は、データの長さを表す(バイト単位)
-次の4桁の16進数は、データレコードのアドレス
-次の2桁の16進数は、レコードのタイプ
--タイプ0:データレコード
--タイプ1:ファイル終了レコード~
→''最後に必ず出力''
--タイプ2:アドレスレコード(ESA)
--タイプ3:開始アドレスレコード
--タイプ4:アドレスレコード(ELA)
-次の部分は、16進数データ
-最後の2桁の16進数はチェックサム
--レコード内のすべての16進数値を合計した時、下位2桁がh'00になるように設定する~
***実際の.hexファイル [#i10e6518]
Instruction Memoryの場合
アセンブラ出力機械語 In-System MemoryからExportしたコード
2080 :0200000020805E
2400 :020001002400D9
2800 :020002002800D4
2c00 :020003002C00CF
2100 :020004002100D9
2500 :020005002500D4
2907 :020006002907C8
2dff :020007002DFFCB
3308 :020008003308BB
3302 :020009003302C0
5000 :02000A005000A4
4400 :02000B004400AF
330a :02000C00330AB5
3315 :02000D003315A9
5000 :02000E005000A0
4500 :02000F004500AA
...........
:0203FF000000FC
:00000001FF(ファイルの終了)
-データ長:02
-アドレス:0000〜03ff
-タイプ:00
-データ:機械語に翻訳されたデータ
-チェックサム:
データ長+アドレス+タイプ+データ+チェックサム
=2'h00になるように計算
Data Memoryの場合
-データ長:04
-アドレス:0000〜07ff
-タイプ:00
-データ:機械語に翻訳されたデータ
-チェックサム:
データ長+アドレス+タイプ+データ+チェックサム
=2'h00になるように計算
~
-------
フォーマットに合うように機械語ファイルを.hexファイルに変換する~
→C言語で書く~
→芳賀さんのコードを見ながら
ページ名: