I TRONの使い方 (第1回)
http://www.hello.ne.jp/tes/ITRON/
I TRONの使い方 (第1回)
・ まずは、こんなとこから…。
LastUpDate:02/10/28 14:05
まず、フリーのソースをダウンロードしましょう。
さて、TRONという言葉をご存知でしょうか?
詳しい解説は専門家の方(TRON PROJECTとかITRON PROJECT) におまかせするとして、コンピュータの基本OSの名前です。一口にコンピュータと言いましてもいろいろあるようでして、TRONも用途によりいろいろ種類があります。 そのうち組み込みシステムと言われる分野 (攜帯電話とか、炊飯器、電子レンジ、テレビなどの家電製品、 まあ最近は電気製品のほとんどかもしれません) の用途に利用されるものを I TRON と言います。
TRONを利用するする人たちの基本姿勢として、仕様をもらって(オープン・アーキテクチャ)、後は自分達でその仕様にのっとったものを作ろう。という方向性があります。 (いや?どちらかと言うと仕様を統一するために公開されているんですが…。まあいいか) しかし、最近の風潮にTRONというものがあるからウチでも扱いたい。 なんて動機で始めるにはちょっとゴールが遠すぎます。それでかどうかは分かりませんが、フリーウェアのITRONを公開しているサイトもあります。ここではそのサイトからソースのダウンロードして、 組み込む方法を解説します。最初に斷っておきますが、Windowsで行う場合のみです。(本來はUNIXでやるもんだそうです)
まずは、ここ(TOPPERS/JSP)からカーネルのソースをダウンロードしてください。
I TRONを使うためにB TRONを勉強してませんか?
※ この段落は確認用です。ぎくっ!と思わなければ次に進んで下さい。
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 に記載されていますので參照してください。
どうでしょう。動きましたでしょうか?
( 実行畫面 )
... to be continue.
相關文章
- 【VBA】複數のセル範囲を取得【RangeとUnionを使います】
- 【VBA】シート名の取得と変更をする方法【.Nameを使います】
- 【VBA】エクセルのシートを非表示にする【Visibleを使います】
- ~てもいいですか”
- 【VBA】セル範囲の値のみをクリアする【RangeとClearを使う】
- 【VBA】Rangeで取得したセル範囲をループする【For Eachを使います】
- 住使產程越鬥觀織方太jih
- 日語動詞ない形
- 【VBA】可視セルの判定、削除、コピー、貼り付け【HiddenとSpecialCellsを使う】
- 你太忙の
- 【VBA】シートの見出し色を設定【.Tabl.Colorと.Tab.ColorIndexを使う】Index
- 【VBA】シート名の一覧を取得【シートをループしてNameを使う】
- 求解 LCA の方法
- 晚上の決心
- c# の datetimeC#
- c# の 事件C#事件
- 五方面使CRM系統改善銷售業務流程
- 【VBA】シートの保護と解除、パスワード設定と判定【ProtectとUnprotectを使う】
- MyBatisPlusの效率與提升MyBatis
- 六等星の夜
- iconfontのsymbol的使用Symbol
- [開發教程]第18講:Bootstrap核取方塊boot
- [開發教程]第31講:Bootstrap對話方塊boot
- 日語乾貨 | 日本人出門為什麼要說「いってきます」,回家要說「ただいま」?...
- JavaScript の querySelector 使用說明JavaScript
- 春小麥の找人神器
- JS拾荒の字串JS字串
- 2022 年開年之際,為使工具更快、更好地為相關方服務
- 迴歸の一些想法
- 並查集の進階用法並查集
- 【canvas】動畫原理の胡克定律Canvas動畫
- 康託の複習筆記筆記
- LeetCode のminimum-depth-of-binary-treeLeetCode
- [ARC058F] 文字列大好きいろはちゃん
- 【恐怖の演算法】 掃描線演算法
- 【恐怖の演算法】 揹包DP演算法
- PHP非字母數字の程式碼PHP
- DuiLib逆向分析の按鈕事件定位UI事件