ホームページ>H8をMacで>その7・TOPPERSに移行する
目次
その7・TOPPERSに移行する
- 目的と経緯
- OS環境の比較
- 入手する
- ビルドする
- H8 用簡易モニタを実機のROMに転送する(Windowsマシン)
- H8 用簡易モニタを実機のROMに転送する(Mac)
- 動作テスト
- 今後の課題
- お世話になったサイト
- 更新履歴
目的と経緯
以下は、マイコンボードの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は既にインストール済のものが使えるような感触です。(現状のバージョンは以下の通り。)
あと、気になるのは、アプリケーションの転送がシリアル経由(バイナリをフロー制御なしで流し込んでるだけ?)になることですが、これは自作IDEもどき(Mac-H8IDE)を改造すれば対応できるかなぁ、といったところです。gcc-3.4.3
binutils-2.15
newlib-1.13.0
入手する
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は各自のユーザ名)
- jsp-1.4.3.tar.gzをダブルクリックして解凍し、できたjspフォルダを上記ディレクトリに移動します。
- ターミナルを起動し、以下の手順でコンフィギュレーションツールをビルドします。(マニュアルと参考サイト(2)の例を元にアレンジしたもの。)
$ cd /Users/hoge/Documents/h8-Toppers/cfg
$ export PATH=/Applications/h8/Local/bin:${PATH}
$ make depend
$ make
結果、ビルド自体は正常終了しました。
注)2行目のexportは、gccの場所にパスを通すためのもので、あらかじめ設定してあれば不要。
- 以下の手順でカーネルをビルドします。(マニュアルと参考サイト(2)の例を元にアレンジしたもの。)
$ cd ..
$ mkdir kernel_lib
$ cd kernel_lib
$ perl ../configure -C h8 -S akih8_3069f
$ make depend
$ make libkernel.a
結果、ビルド自体は正常終了しました。
- 以下の手順でサンプルをビルドします。(マニュアルと参考サイト(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上でビルドすれば使えるらしい、という情報は得ていて、実際ビルドもしていたのですが、実行するとハングアップするため、ずっと放置状態でした。
それが、ようやく動作するようになったので、ここに整理しておきます。
- ソースの一部を改変する。(ここがキモでした。情報感謝です。)
参考サイト(3):2008年1月のてきとーな日記(「H8Write OpenBSD用に修正を加えてから」の項)
- デバイスについては、「/dev/cu.usbserial」となった。(秋月のUSB-シリアル変換ケーブルを使用)
「/dev/tty.usbserial」というのもあるが、こちらではないようだ。
- 実行時に一度でもハングアップすると、以降、ポートが全く反応しなくなる。デバッグ時は要注意。
その場合は、ケーブルを一度抜いて刺し直すとリセットされる。(もっとスマートな方法があるのかもしれないが…)
- ビルド自体はあちこちで紹介されている通り、「gcc -o h8write h8write.c」とすればよい。
ただし、あらかじめXcode(gcc含む)をインストールしておく必要あり。(Mac上で動作させるため、H8用gccは使えない(筈)。)
- 実行させると、WARNINGはいくつか出るが、書き込みは出来ているようだ。
hoge$ ./h8write -3069 -f20 mon3069.mot /dev/cu.usbserial WARNING:It seems the H8/300 system is already in Query mode. Error code : 0 H8/3069F is ready! 2002/5/20 Yukio Mituiwa. writing WARNING:This Line dosen't start with"S". Address Size seems wrong WARNING:This Line dosen't start with"S". Address Size seems wrong ................................................................ EEPROM Writing is successed. hoge$ボードを起動させてみると、簡易モニタのメッセージが表示され、コマンドも受け付けている。
- 途中、暫く停止する箇所(「H8/3069F is」のあたり)があるので、慌ててcntl+cしないこと。
動作テスト
簡易モニタ転送後、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]