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

SH-2

先の三連休は、模型飛行機を飛ばしたくても、台風13号が近付いていって、とても飛ばせる天候では無かった。せっかく、ゴムを大量に購入して準備をしていたのだが、仕方が無い。

そこで、SH-2 のマイコンボードを作って遊んでいた。新たに購入したのでは無く、Interface 誌の 6 月号の付録である。最近の雑誌には、付録にマイコンとか FPGA が付いていて面白い。とは言え、付録の付いた雑誌は買うには買うが、実際に作って見ることは滅多に無い。2年も前のトランジスタ技術の付録の H8 基板も、そのままになっている。今回は、ちょっと必要に迫られたところもあって、Interface 誌の SH-2 基板を作ってみた。

作ったと言っても、QFP の CPU は既に半田付けしてあって、新たに半田付けするのは D-Sub 等のコネクタ類だけだ。こんな半田付けは、あっと言う間に終って、早速、電源を接続する。予め書き込んであるテストプログラムが走って、動作確認終了である。

まあ、ここまでは普通だが、Interface 誌の記事通りにしても面白くないので、開発環境は Linux 上に作った。

まずは、binutls や gcc を、SH-2 用にクロスコンパイルできるように構築した。この辺は、やりなれている作業なので、楽に進む。(ちなみに私のPCには、H8 や SH-3、Zaurus、PIC 用とクロス開発用のアセンブラやコンパイラが山ほど入っている。究め付けは FPGA 用の VHDL コンパイラだろう)

だが、この先で困った。コンパイルしたプログラムを SH-2 の ROM に書き込む方法が無いのだ。普段なら、Linux からは、「Open SH/H8 writer h8writer」と言うプログラムで書き込むのだが、このプログラムは、同じ SH-2 でも旧いタイプの 7045F までしか対応していない。今回使った Interface 誌の付録は、新しい 7144F なので、書き込めないのだ。

結局、ネット上を探しても Linux で使える 7144F 用のライティングプログラムは見付からなかった。また、「Open SH/H8 writer h8writer」のソースコードは公開されているのだが、簡単に改造できるようでは無かった。

そこで、ちょっとインチキな方法で書き込むことにした。H8W (H8ライター+H8工作+PIC工作)と言う Windows 用のライティングプログラムを使ったのだ。 Windows 用のライティングプログラムを、Wine で動かして、書き込みに成功したのだ。

Wine は、Linux 上で Windows アプリを動かすエミュレーターだが、簡単なソフトなら意外と使いものになる。

私の場合、3D 表示のソフトとサウンドを使ったソフトは動かない。今回は、シリアルポートを叩くソフトなので、ちょっと心配したが、問題なく動いた。なお、 Wine は、まだ正式リリース前で、毎週のようにバージョンアップしているが、私が使ったバージョンは、ちょっと前の 0.9.6 だ。(Linux の方は、もちろん Debian Linux 3.1 Sarge)

さらに調子に乗って、リアルタイム OS のポーティングにも挑戦した。

リアルタイムOS は、フリーの ITORN 仕様のHOS である。HOS-v4a には、元々、SH-2/SH7144F のサンプルが入っているのだが、あいにくモニター使用時用の RAM 上で動作するものであった。だが、ROM で使いたかったので、RAM 用のサンプルプログラムを元にネット上の情報を参考に ROM 化に成功した。

(この辺、要望があるようなら、ソースコードとか公開しようと思うが、どうでしょう?)

まあ、リアルタイム OS のポーティングを含めると三連休を、ちょっとハミ出たが、全く SH-2 を触った事がない時点から始めて、ここまでやったのだから早い方だろう。

さて、リアルタイム OS までポーティングしたのだから遊べるだろう。調べてみると SH-2/7144F は、シリアルポートが、4 チャンネルもあるので、これだけでも色々と試すことがありそうだ。

と言うわけだが、一体、何に「ちょっと必要に迫られた」のかは、少しだけ秘密である。

注意

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

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