TOPPERS/JSPカーネルは、μITRON4.0仕様に準拠したリアルタイムカーネルで、TOPPERSプロジェクトの最初の開発成果です。 JSP(Just Standard Profile)の名前が示す通り、μITRON4.0仕様の スタンダードプロファイル規定に従って実装されています。
JSPカーネルの最新リリースはこちらからダウンロードできます。
JSPカーネルの主な特長は次の通りです。
研究・教育への利用を想定して開発したことから、ソースコードの読みやすさ や改造しやすさに重点を置いて実装しました。ただし、安易な読みやすさを追 求して、効率の悪い平易なアルゴリズムを採用することはしていません。むし ろ、タイムイベントの管理にヒープ構造を用いるなど、複雑であっても効率的 なアルゴリズムは積極的に採用しています。
カーネルのできる限り多くの部分をC言語で記述する、ターゲット独立部とター ゲット依存部を明確に分離するなど、他のターゲットプロセッサやシステムへ のポーティングが容易な構造となっています。実際、ターゲットプロセッサの アーキテクチャを熟知していれば、3日程度でポーティングできたという報告 もあります。
大部分がC言語で記述されているカーネルとしては、高い実行性能と小さい RAM使用量を実現しました。
JSPカーネルを、Linux上およびWindows上の動作させるためのシミュレーショ ン環境を用意しています。これらのシミュレーション環境は、Linuxおよび Windowsの一つのプロセスの中で複数のタスクを切り替えて動作させるもので、 組込みシステムのプロトタイプ開発やロジックレベルでの検証、リアルタイム OSの学習用途などに最適なものです。
TOPPERS/JSPカーネルは、GCCなどのGNU開発環境を標準のソフトウェア開発環 境としています。そのためユーザは、カーネル本体のみならず開発環境もフリー で入手し、システム開発をおこなうことが可能です。
JSPカーネルは、現時点で、以下のターゲットプロセッサ/ターゲットシステ ムをサポートしています。
最新のJSPカーネルには含まれていないターゲット依存部は、こちらにあります。
以下のターゲットは、以前のバージョン(1.4.1)のコードからアップデート されておらず、動作確認を行っていないため、1.4.2以降では、参考実装扱い としています。
TOPPERS/JSPカーネル リリース1.3でサポートしているターゲットプロセッサ およびターゲットシステムは以下の通りです。
本パッケージは、TOPPERS/JSPカーネルに対応したLattice製LatticeMico32依 存部です。TOPPERS/JSPカーネルRelease 1.4.3に本パッケージに含まれるファイルをマージすることで、下記ターゲットボードにてTOPPERS/JSPカーネルを動作させることができます。
JSPカーネルのシミュレーション環境として、Linux上で動作する環境と Windows上で動作する環境を用意しています。これらのシミュレーション環境 は、Linux および Windows の一つのプロセスの中で複数のタスクを切り替え て動作させるもので、スレッドライブラリとして使うこともできます。
また、以下のプロセッサでは、GNUで提供されるプログラムやメーカーが提供 する開発ツール環境を用いることで、組込み用マイコンの動作をパソコン上で シミュレーションすることができ、評価用ボード等を用意することなく、JSP カーネルを動作させることができます。各シミュレーションツールについては、 JSPカーネル リリースパッケージに含まれるドキュメントを参照してください。
TOPPERS/JSPカーネルは、GCCなどのGNU開発環境を標準のソフトウェア開発環 境としています。インライン関数やインラインアセンブラ機能など、GCCの拡 張機能を用いている部分があります。ただし、GNU開発環境がサポートしてい ないターゲットプロセッサなどに対しては、他の種類のコンパイラを用いてい ます。例えば、Windows上のシミュレーション環境には、Visual C++を用いて います。
JSPカーネル1.4で、C++バインディングを使用する場合、パッチが必要となり ます。以下は、Cygwin上でGCC 3.2.3のmake時に発生する障害を回避するため のパッチです。
以下は、GCCをTOPPERS/JSPカーネルに対応させるためのパッチです。
詳細は、JSPカーネルの配布キットに含まれるドキュメントや、 ユーザズメーリングリストでの回答をご覧ください。
GNU開発環境の中で、具体的には、BINUTILS、GCC-CORE、GDBが必要です。また、 アプリケーションプログラムで標準ライブラリを必要とする場合には、NEWLIB を用いることができます。開発環境を Windows上に構築する場合には、Cygwin が必要です。これらのソースコードは、以下からダウンロードすることができ ます。
GNU開発環境: GNUプロジェクト、 Ring Server NEWLIB: Red Hat Cygwin: Red Hat、 Ring Server
Cygwin用のSHのBINUTILS,GCC-CORE,GDBのバイナリが、以下にあります。 /usr/local/で展開して、/usr/local/sh/binにパスを通して使用してください。
ホストマシンとターゲットシステムをシリアルインタフェースで接続し、GDB (GNUデバッガ)を用いてリモートデバッグを行う場合には、ターゲットシス テム上にスタブと呼ばれるプログラムが必要です。TOPPERS/JSPカーネルと一 緒に使えるように改造したスタブのソースプログラムは、以下にあります。
以下では、H8 用簡易モニタを配布しています。(株)ルネサステクノロジー 製 H8 のフラッシュ ROM の書込み回数には制限があるため、 デバッグ用モ ジュールをフラッシュ ROM に書込んでデバックするのは、あまりよい方法で はありません。この H8 簡易モニタは、デバッグ用モジュールを RAM にロー ドして実行するためのプログラムです。
フラッシュ ROM には、 この H8 簡易モニタをは書込んでおき、デバッグ用モ ジュールを H8 の内蔵 RAM、または外部に増設した RAM にロードし、 デバッ グを行いますので、H8 のフラッシュ ROM の書込み回数制限の問題を回避する ことができます。
H8 用簡易モニタの概要を以下に示します。
宮城県産業技術総合センターでは、CQ出版RISC評価キットSH-1に付属するデバッ ガに対応したバージョンを、 こちらから配付しています。
(有)スペースソフトが、(株)日立超LSIシステムズ製Solution Engine MS7751RSE01へ移植されました。移植手順の紹介とカーネルの配布をこちらから行っています。
TOPPERSプロジェクトのメンバとして、TOPPERS/JSPカーネルの開発に参加 している開発スタッフは次の通りです(所属は参加した時点のもの)。
※ 開発スタッフの名前は、掲載を了承された方のみ記載しています。