マツド・サイエンス研究所

SH-2 Linux上でのリアルタイム OS 開発環境 (その3 ROM 書き込み編)

さて、今回は、コンパイルした sampleRom.mot を SH-2 内部の ROM に書き込む方法に付いて述べる。

Linux 専用の書き込みプログラムが無い

普段、Linux から、H8 や SH-2 に書き込む時は、Open SH/H8 writerを用いている。

ところが、これは、SH7050F や SH7045F には対応しているものの、今回使っている SH7144F には対応していない。

Open SH/H8 writer はソースも公開しているので、SH7144F 用に作り変える事も可能かと思ったが、意外と難しそうなので、諦めた。(誰か、お願い)

そこで、ちょっとインチキだが、Wine と Windows 用の書き込みソフトを使う手段を使った。

Wine

Wine は、Linux 上で、Windows のアプリケーションを動かすことができるエミュレーターだ。

まだ、正式リリース版では無いようだが、意外と色々なアプリケーションが動作する。

私の場合、3D 表示やサウンドを使った Windows アプリは動作しないが、ATI や nVIDIA のようなグラフィックカードを使っていれば、3D 表示の Windows アプリも動作するらしい。(サウンドの方は単なるセッティングの問題の可能性が高い)

今回は、フリーの Windows 用の書き込みソフトを試したところ、もちろん 3D 表示もサウンドも使っていないせいか、全く問題なく Wine の上で動作した。

まず、Wine のインストールだ。

ここから、Wine のソースをダウンロードする。Wine は毎週のように更新している。私が使ったバージョンは、wine-0.9.6.tar.bz2 だが、最新のものでも大丈夫だろう、確信は無いが。

次のような手順でインストールする。

$ bunzip2 < wine-0.9.6.tar.bz2 |tar xvf -
$ cd wine-0.9.6
$ ./configure
$ make depend
$ make
# make install

/etc/ld.so.conf に /usr/local/lib があることを確認。

# /sbin/ldconfig -v

$ winecfg
で、設定が行えるのだが、たぶん、デフォルトのままで良い。

$ winemine
とやって、ゲームが動けば、動作確認である。

フリーの Windows 用の書き込みソフト

H8ライター+H8工作+PIC工作から、H8W_036b.zip をダウンロードする。

$ unzip H8W_036b.zip
$ cd H8W
$ wine h8w.exe

これで、書き込みソフトが起動する。

・SH-2 ボード上のジャンパーを接続する。

・パソコンのシリアルポートと SH-2 ボードのシリアルポートをストレートケーブルで接続。

・SH-2 ボードの電源を入れる。

・書き込みソフトの「書き込み制御ファイル」で「7144_45_F48M_P384.MOT」を選択

・「COM Port」「COM1」

・「Baud (B)」「19200」

・「Baud (P)」「38400」

・「書き込むファイル」ボタンを押し、「目的となる sampleRom.mot」を選択する。

・「書き込み開始」ボタンを押す。

・しばらく、時間がかかるが、プログラムを書き込む事ができる。

・SH-2 ボードの電源を切る。

・書き込みソフトを終了。

動作試験

ターミナルソフトをインストールしていなければ、kermit をインストールしておこう。

# apt-get install ckermit 

~/.kermrc と言うファイルを作り、

set line /dev/ttyS0
set speed 38400
set carrier-watch off

$ kermit
で、kermit がスタートする。

C-Kermit>
と言うプロンプトが出たら、「c」とエンターでターミナルがスタートする。

・SH-2 ボード上のジャンパーを切る。

・パソコンのシリアルポートと SH-2 ボードのシリアルポートをストレートケーブルで接続。

・SH-2 ボードの電源を入れる。

これで、サンプルソフト(いわゆる哲学者の食事の問題)が、表示されれば、成功である。

なお、kermit を止めるには、コントロール+「\」に続いて、「c」を押し、

C-Kermit>
と言うプロンプトが出たら、「exit」とコマンドを入れる。

私のパソコンには、シリアルポートが付いており、全く問題なく、ROM にプログラムが書き込めた。

シリアルポートの無いパソコンの場合、USB 等のシリアルポートからプログラミングができるかどうかは試していない。誰か、やってみたら、結果を教えてほしい。

注意

ブログのコンテンツの内、「告知」など時期よって情報価値が無くなるのは除いてある。また、コンテンツに付いたコメントは書き込み者に著作権があるものと判断し、ここに持ってきていないので、コメントを見るときは、元々のブログコンテンツを参照してもらいたい。

その他、ブログ発表後、コメントなどの内容を反映するなど、内容を変更しているものもあるので、注意してほしい。