<概要>
このプログラムローダーは、シリアル入力からフラッシュの書き換えを行うプログラムです。
<機能>
- "W"コマンド(W[CR])
フラッシュを消去し、自身(このプログラムローダー)を書き込みます。
"00"が表示されれば正常終了です。
- "Z"コマンド(Z[CR])
フラッシュを消去します。
"0"が表示されれば正常終了です。
- "S"ストリング
motorola S type format (S2) を書き込みます。
"S2o"が表示されれば、そのレコードは正常終了です。
"S2"以外で始まるレコードはそのままエコーで返します。
<使い方>
- プログラムローダーの書き込み
シリアルデバッガなどでこのプログラムローダーを書き込むと固定割り込みベクタの一部
がシリアルモニタを指していますので、通常起動後ターミナルより"Z"コマンド(Z[CR])を実行
してからこのプログラムローダーの S type format ファイルを転送して書き込みます。
(フラッシュライタで書き込んだ場合はこの手順は必要ありません。)
- ユーザープログラムの書き込み
ユーザープログラムは、固定ベクタ領域のロケーションを512バイトアドレス分下位側に
ずらして生成します。(プログラムローダーを避けて生成する。)このとき、固定ベクタは .lword
ではなく、jmp.a でジャンプコードを生成します。
(モニタのソースをご参照ください。)
次に、通常起動後、ターミナルより"W"コマンド(W[CR])を実行してからユーザープログラム
の S type format ファイルを転送して書き込みます。なお、ロードするプログラムが 400h から
の RAM エリア 512バイトを指している場合には、プログラムローダーが破壊され正常に動作
しません。
- ユーザープログラムからプログラムローダーの呼び出し
ユーザープログラムから 0fe10h からの2バイトで示されるアドレスにジャンプすると、プロ
グラムローダーを起動することができます。このとき、割り込み許可フラグ(I)およびスタック
ポインタ指定フラグ(U)はクリアした状態にする必要があります。
プログラムローダーは、400h からの RAM エリア 512バイトを使用して動作しますので、
呼出し後、RAM エリアのデータは破壊されます。また、ユーザープログラムに戻るにはリセッ
ト以外にありません。
<ご注意!>
このプログラムは、著作権を放棄していない「フリーソフトウエア」です。ご使用に当たっては
十分ご注意の上、自由に使用していただいてかまいません。また、このソフトウエアを使用した
ことによるすべての損害について、作者は一切その責任を負わないものとします。
ダウンロード
GitHub