μITRONというのは(Micro Industrial The Real-time Operating system Nucleus)という 組み込み用のリアルタイムOSのことです。そして、TOPPERSというのはμITRON 4.0 仕様に準拠したリアルタイムカーネルです。 一般的に、マイコンなどのプログラム開発では対象のシステムによって回路や使用デバイス、 IOなどが大きく異なります。パソコンのようにかならず画面があるわけでもないですし、 入力インターフェイスがスイッチ1個なんていうこともあります。そのため、printfや scanfなどの標準関数を用意しなければならないこともあります。 また、複数の処理を同時に行うためには、自身でタスクを切り替える必要があります。 OSは、これらのハードウェアの違いを吸収してプログラムを一般化してくれたり、 タスクの切り替えや標準的な関数を用意してくれたりします。さらに、 プログラムが一般化できれば他の人が作ったプログラムをそのまま使うことができます。
ここでは、開発環境をCygwin、ターゲットを秋月のH8/3069fボードに絞って TOPPERS導入で四苦八苦した記録を書いていこうかと思います。 また、本ホームページに記載している内容はμITRON4.0仕様書からの一部抜粋であり、 以下に示したITRON Project Archive内から仕様書を入手することができます。 詳細な仕様はそちらを参考にしてください。 また、μITRON4.0仕様書およびTOPPERS付属のドキュメントは非常に丁寧に 書かれているのでとても参考になりました。
今回、TOPPERSの開発はCygwinで行いました。コンパイラはGCCです。 ただし、コンパイラやMakefileのバージョンによってはパッチやソースコードの 修正が必要がある場合がありますので注意してください。私は以下のバージョンで 確認をしました。また、TOPPERSのデフォルトの実行環境設定はモニタプログラム になっていますが、ここではモニタプログラムを使わずROM化して毎回H8に 書き込むことにします。
ここで言うモニタプログラムというのは、コンパイルした プログラムをフラッシュに書き込まずに、RAM上にロードして実行する プログラムのことです。H8の場合、内蔵フラッシュの書き込み保証回数が 100回程度と少ないためモニタプログラムを使って開発をすることが多いようです。 ただし、外部RAM上で実行するため実行速度がやや遅くなったり、使うことのできる 割り込みハンドラが制限されたりします。
item | version | information |
---|---|---|
GCC | gcc-core-3.4.5 | コンパイラ |
binutils | binutils-2.16.1 | アセンブラ、リンカ |
newlib | newlib-1.13.0 | 標準関数ライブラリ |
make | make-3.81 | Makefile、TINET以外OK |
make | make-3.79 | Makefile、TINETOK |