さて、TRONという言葉をご存知でしょうか?
詳しい解説は専門家の方(TRON PROJECTとかITRON PROJECT) におまかせするとして、コンピュータの基本OSの名前です。一口にコンピュータと言いましてもいろいろあるようでして、TRONも用途によりいろいろ種類があります。 そのうち組み込みシステムと言われる分野 (携帯電話とか、炊飯器、電子レンジ、テレビなどの家電製品、 まあ最近は電気製品のほとんどかもしれません) の用途に利用されるものを I TRON と言います。
TRONを利用するする人たちの基本姿勢として、仕様をもらって(オープン・アーキテクチャ)、後は自分達でその仕様にのっとったものを作ろう。という方向性があります。 (いや?どちらかと言うと仕様を統一するために公開されているんですが…。まあいいか) しかし、最近の風潮にTRONというものがあるからウチでも扱いたい。 なんて動機で始めるにはちょっとゴールが遠すぎます。それでかどうかは分かりませんが、フリーウェアのITRONを公開しているサイトもあります。ここではそのサイトからソースのダウンロードして、 組み込む方法を解説します。最初に断っておきますが、Windowsで行う場合のみです。(本来はUNIXでやるもんだそうです)
まずは、ここ(TOPPERS/JSP)からカーネルのソースをダウンロードしてください。
※ この段落は確認用です。ぎくっ!と思わなければ次に進んで下さい。
I TRONは組み込みシステム用OSと一言に言っても、ちょっとピンときませんよね。
単刀直入に申し上げれば、B TRONで動くプログラムは I TRONでは動きません。まあ、そのあたりをちゃんと考慮してある。というただし書きがあれば別ですが、実際あるんだろか? と首を傾げてしまうあたりです。
どれくらい違うか?と言う話になるとWindowsとUNIXぐらい違うと思って頂いてよいと思います。もしCPUが同じであってもプログラムは動かないのです。(このあたりも上記の専門のサイトでご確認ください)
TRONについて、パソコン用がB TRONで組み込み用が I TRONと聞いた時、他のOS(例えばパソコン用のWindowsとPDA用のWindowsCEとか、パソコン用のLinuxと組み込み用のLinuxなど)で、組み込み用OSのソフト開発の作業(の大部分)をパソコン上で行える(ので便利)と言われている事を思い出して、TRONでは B TRONのソースは I TRONに結構流用できるのではなかろうか?と思われてしまうのかもしれませんが、違います。これに限っては設計元が同じなだけの別OSと、きっぱり分けて考えた方が良いでしょう。
このWindowsセットは用途、ツールによって何通りかのコンパイル方法があるようです。一番楽な用途と方法は「Windows上で I TRONの動作をみるだけのシミュレーション環境をVisualStudio(と言うツール)で作る」というものでしょう。
※ VisualStudioの入手方法については購入しかありません。また、環境のセッティングについてもここで申し上げるような事もなく、製品のCDをドライブにセットして頂ければ後は画面に従って行くだけでインストールが終了すると思います。
これ以外にもGNUのツールをダウンロードしてきてコンパイル環境を構築、シミュレーション環境の構築やconfigureに基づいて I TRONカーネル(いわばOSそのもの)をコンパイルしてみたり、開発した目的のCPUに対してクロスコンパイラを使った構築をしたり…。等いろいろとしばらくは飽きないですみそうな事うけあいのようです。
とりあえず、GNU環境のダウンロード先をご紹介しておきます。(詳しくはソースコードを展開後、jsp\doc にある gnu_install.txt をご覧下さい)
GNU開発環境
BINUTILS(アセンブラ,リンカなど)
GCC-CORE(Cコンパイラ)
GDB(デバッガ)
NEWLIB(標準Cライブラリ)
perl(動作確認は 5.005)
GNU Make(動作確認は 3.77)
また,これらの開発環境を Windows上に構築するためには Cygwin を用いる.
BINUTILS,GCC-CORE,GDB,GNU Make:
GNUプロジェクト http://www.gnu.org/
Ring Server http://www.ring.gr.jp/
NEWLIB:
Red Hat http://sources.redhat.com/newlib/
または ftp://sources.redhat.com/pub/newlib/
Cygwin:
Red Hat http://sources.redhat.com/cygwin/
または ftp://sources.redhat.com/pub/cygwin/
Ring Server http://www.ring.gr.jp/
また、オリジナルボード上のCPUで I TRONを動かす場合についてですが、クロスコンパイラというものが別途必要です。
(いまさら言うと反則かもしれませんが)これの入手方法および環境の構築についてはそのCPUによりけりで、一概にどうとも言えず(買う必要があるもの、ダウンロードしか手段のないもの、ダウンロードも出来るけどRAID環境がそろってて買った方がはるかにお得なもの…) さらに、このソースのサポートCPUの数もM68040,SH3/4,SH1,H8,H8S,ARM7TDMI,V850,M32R,MicroBlaze,TMS320C54x,i386と豊富なため、列挙するのはちょっと勘弁してください。(今後、特に必要が出て作業をした場合は、こちらにも報告のような形で上げさせて貰います)
つぎに、OSをボード上のCPUに送り込む方法ですが、これも種によりけりで、ターゲット・ボードがどういう作りか?と言うことにも深く関わってきます。つまり、シリアルバスを使ってプログラムを読み込むもの、TCP/IPで行うもの、ICEからというもの、はたまたシリアルに繋いでおけばRAID環境が勝手に…というものナドナド、全部挙げようとすればキリがありません。それに、この作業を手作業で行うにしてもそれはどちらかと言うとターミナルソフトの使い方であって、ここで私が雑な説明をするより、その説明を専門に取り扱っているもっと親切なサイトをご覧になることをお勧めします。
(そんなこんなでここでは説明を省略いたします)あしからず。
(VS編)
まずは、VisualStudioを使用してシミュレーション環境を構築してWindows上で動かす方法について紹介します。
1.ソースコードの展開
ダウンロードしたソースコードを適当な空フォルダに展開します。2.ツールのビルド(cfg.exe、chk.exe)
そのフォルダの中からさらに下の階層 jsp\cfg\vc_project に移動。プロジェクトconfigurator.dsw を起動します。3.シミュレーション環境のビルド
2つのファイル checker、configurator をそれぞれビルドします。
また別の場所 jsp\WINDOWS\vc_project にあるプロジェクト toppers.dsw を起動。ビルドを行います。4.動作確認
フォルダ jsp\WINDOWS に出来たアプリケーション Toppers.exe を起動するとシミュレーション画面が立ち上がります。
しかし、
気をつけて利用しませんと、入力はシリアルポートのみです。タスクバーにも表示されませんし、ウインドウ上にも「×」ボタンがありませんから実行すると、どう消して良いか途方にくれる事も考えられます。
まあ、アイコントレイ(タスクバーの右端)にアイコンが表示されています。それを右クリックすると終了しますから心配はありません。
操作方法については jsp\WINDOWS フォルダの中の sample1.c に記載されていますので参照してください。
どうでしょう。動きましたでしょうか?
( 実行画面 )