ホームページH8をMacで>その7・TOPPERSに移行する

その7・TOPPERSに移行する

目次
 目的と経緯

 以下は、マイコンボードのOSをMESからTOPPERS/JSPに移行した際の覚書です。

 H8ボードに対するMESのサポートが、正式に打ち切られたようです。(2009/01/24現在)
 大分前から、無償サポートは打ち切られていたのですが、ホビー用として、モジュールの提供だけは行われてきました。
 ですが、それ(モジュールの提供)もなくなったようです。

 勿論、既に取得済のモジュールは継続利用できる訳ですが、現状、SDカードが動かないことやインターネットラジオが行き詰まっていることを考えると、継続利用にこれといったメリットはありません。
 MESの公式ページで、μITRON/TOPPERSへの移行が推奨されていることもあり、これを機会に、TOPPERSに移行することとしました。


 OS環境の比較

 少し調べてみたところ、両者には相違があることが分かりました。比較した項目を表にすると、以下のとおりです。

項目 MES TOPPERS
 コンパイラ  gcc  gcc
 OSの提供形態  バイナリ(自分でビルドも可)  ソースコード
 OSの置き場  ROM  RAM
 簡易モニタの置き場  (使用しない)  ROM
 アプリケーションの置き場  RAM  RAM
 アプリケーションの転送  tftp  Serial

 調べた限りでは、gccは既にインストール済のものが使えるような感触です。(現状のバージョンは以下の通り。)
gcc-3.4.3
binutils-2.15
newlib-1.13.0
 あと、気になるのは、アプリケーションの転送がシリアル経由(バイナリをフロー制御なしで流し込んでるだけ?)になることですが、これは自作IDEもどき(Mac-H8IDE)を改造すれば対応できるかなぁ、といったところです。


 入手する

 gccは既にインストール済なので、OS本体を入手します。
 TOPPERSのカーネルにはASPとJSPがありますが、ここでは、より実績のあるJSPを選択しました。
JSP環境で安定して開発ができるようになったら、ASPに移行しようかとも考えています。
 ダウンロードは以下の公式サイトから。

 参考サイト(1):TOPPERSプロジェクト/INDEX

 ドキュメントはアーカイブに同梱されています(jspフォルダ内のdocフォルダ内)。とりあえず、
user.txt :ユーザズマニュアル
  gnu_install.txt :GNU開発環境構築マニュアル
ぐらいは目を通しておいた方がいいでしょう。
 また、インストール全体の流れとH8に特化した手順は以下のサイトが参考になります。

 参考サイト(2):組込みシステム開発技術セミナー TOPPERS/JSPカーネルを使ってみよう!


 ビルドする

 マニュアルに記述されている手順で、OS本体とサンプルをビルドしてみました。
注)ここでは、/Users/hoge/Documents/h8-Toppers/ディレクトリ下で作業しています。必要であれば適宜変更して下さい。
(hogeは各自のユーザ名)
  1. jsp-1.4.3.tar.gzをダブルクリックして解凍し、できたjspフォルダを上記ディレクトリに移動します。

  2. ターミナルを起動し、以下の手順でコンフィギュレーションツールをビルドします。(マニュアルと参考サイト(2)の例を元にアレンジしたもの。)

    $ cd /Users/hoge/Documents/h8-Toppers/cfg
    $ export PATH=/Applications/h8/Local/bin:${PATH}
    $ make depend
    $ make

    結果、ビルド自体は正常終了しました。
    注)2行目のexportは、gccの場所にパスを通すためのもので、あらかじめ設定してあれば不要。

  3. 以下の手順でカーネルをビルドします。(マニュアルと参考サイト(2)の例を元にアレンジしたもの。)

    $ cd ..
    $ mkdir kernel_lib
    $ cd kernel_lib
    $ perl ../configure -C h8 -S akih8_3069f
    $ make depend
    $ make libkernel.a

    結果、ビルド自体は正常終了しました。

  4. 以下の手順でサンプルをビルドします。(マニュアルと参考サイト(2)の例を元にアレンジしたもの。)

    $ cd ..
    $ mkdir APL
    $ cd APL
    $ perl ../configure -C h8 -S akih8_3069f -L ../kernel_lib
    $ make depend
    $ make

    結果、ビルド自体は正常終了しました。(APLフォルダにjsp.srecができているのを確認)

 H8 用簡易モニタを実機のROMに転送する(Windowsマシン)

 H8 用簡易モニタは、H8のROM書き込み回数制限のリスクを回避するためのソフトで、これをROM上に置くことで、OSとアプリをRAMに転送して実行させることができるようになります。

 ROMへの転送はMacではできない(できるツールが手元にない)ので、Windowsマシンを用いました。この辺は、MES本体のROMへの転送と同じ要領です。(ただし、使用するソフトが異なりますが、これは後述。)

 H8 用簡易モニタは、TOPPERSのサイト(JSPカーネルのページ)からダウンロードできます。

 参考サイト(1):TOPPERSプロジェクト/INDEX

 H8 用簡易モニタはビルド済なので、H8ボードに付属してきたCD内にあるh8write.exeを用いて、ROMに転送しました。
(手順については、参考サイト(2)内の以下のページが参考になりました。)

 転送は正常に終了しました。


 H8 用簡易モニタを実機のROMに転送する(Mac)

 実は以前から、h8writeのソースをMac上でビルドすれば使えるらしい、という情報は得ていて、実際ビルドもしていたのですが、実行するとハングアップするため、ずっと放置状態でした。
 それが、ようやく動作するようになったので、ここに整理しておきます。


 動作テスト

 簡易モニタ転送後、Mac-H8IDEを起動してボードをリセットしてみましたが、うんともすんともいいません。
 どうもシリアル通信部分が冗長化(バッファの取りこぼし対策等)していたことが原因のようで、最初のシンプルなスタイルに戻したところ、動作するようになりました。

 現状、新規にプロジェクトを作成してビルドする手順がまだ不明なことや、tftp関連が不要になったこともあり、とりあえずはシリアル通信に特化したものを、Mac-H8Toppersとして再パッケージ化しました。(ファイル転送用に、バイナリを1バイトずつ流し込む処理も追加。)
 これで、個別の作業にはなるものの、ビルドからRAMへの転送まで、Mac上で行えるようになりました。



 さて、ビルドしたjsp.srecをRAMに転送します。
(手順については、参考サイト(2)内の以下のページが参考になりました。)

 転送後、実行してみましたが、(確認できた範囲内では)正常に動作しました。
 とりあえず、現行のMac上でのビルド環境は、そのまま使えるとみて良さそうです。


 今後の課題

 まずは、ネットワーク(TCP/IP)関係の機能を活用するためのモジュール(TINET)を追加する予定です。

 「その7a・TOPPERSに移行する(ネットワーク編)」へ続く


 お世話になったサイト

 有用なソフトウェアおよび貴重な情報をご提供頂いている皆様に、お礼申し上げます。(以下、順不同)

 参考サイト(1):TOPPERSプロジェクト/INDEX
 参考サイト(2):組込みシステム開発技術セミナー TOPPERS/JSPカーネルを使ってみよう!
 参考サイト(3):2008年1月のてきとーな日記(「H8Write OpenBSD用に修正を加えてから」の項)


 更新履歴

 2009.12.05 「H8 用簡易モニタを実機のROMに転送する(Mac)」を追加。参考サイト(3)を追加。
 2009.02.07 新規作成


[Home]  [MacSoft]  [Donation]  [History]