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開発環境を標準のソフトウェア開発環 境としています。そのためユーザは、カーネル本体のみならず開発環境もフリー で入手し、システム開発をおこなうことが可能です。
開発環境のバージョン(C++ライブラリの振舞い)によって,cfgが終了しな
くなる不具合が報告されています。原因や修正方法について,以下のページ
に情報がありますので,参考にしてください。
http://bfin.sakura.ne.jp/?p=213
http://www.toppers.jp/TOPPERS-USERS-mailman/2012-June/003802.html
http://www.toppers.jp/ETROBO-ML/2014-December/000023.html
JSPカーネルは、リリース1.4.3の時点で、以下のターゲットプロセッサ/ターゲットシステ ムをサポートしています。リリース1.4.4以降は、配布キットのタイプにより対応ターゲットが異なります。詳細は、配布キットに含まれる文書をご参照ください。
最新のJSPカーネルには含まれていないターゲット依存部は、こちらにあります。
ディレクトリ名 | 開発環境 | |
---|---|---|
![]() |
プロセッサ(型番) | システム(メーカ名) |
m68k | GNU開発環境 | |
M68040(MC68LC040) | DVE-68K/40(電産) | |
sh1 | GNU開発環境 | |
SH1(SH7032) | KZ-SH1-01(京都マイクロコンピュータ) ※ RISC評価キットSH-1(CQ出版)でも動作 |
|
SH1(SH7034) | μITRON搭載SH1CPUボード((株)中央製作所) | |
sh2 | GNU開発環境 | |
SH2(SH7145) | AP_SH2F_6A(アルファプロジェクト) | |
SH2(SH7615) | HSB7615IT (北斗電子) | |
sh3 | GNU開発環境 | |
SH3(SH7709A) | MS7709ASE01 (日立超LSIシステムズ) | |
SH3(SH7729R) | MS7729RSE01 (日立超LSIシステムズ) | |
SH3(SH7727) | MS7727CP01 (日立超LSIシステムズ) | |
SH4(SH7750) | MS7750SE01 (日立超LSIシステムズ) | |
sh3-ghs | GHS開発環境 | |
SH3(SH7709A) | MS7709ASE01 (日立超LSIシステムズ) | |
SH3(SH7727) | MS7727CP01 (日立超LSIシステムズ) | |
h8 | GNU開発環境 | |
H8(H8/3052F) | AKI-H8/3052F(秋月電子通商) | |
H8(H8/3069F) | AKI-H8/3069F(秋月電子通商) | |
h8-renesas | Renesas社の開発環境 | |
H8(HSB8F3048BF25) | H8/3048F-ONEスタータキット((株)北斗電子) | |
h8s-renesas | Renesas社の開発環境 | |
H8S(2339F) | MiNET-H8S/2339F(ミスポ) | |
armv4 | GNU開発環境 | |
ARM9 (ARM922T) | KZ-ARM9EXPCI-01(京都マイクロコンピュータ) | |
ARM9(ARM926EJ-S) | AZ9360MB(YDK) | |
armv4-ghs | GHS開発環境 | |
ARM9(ARM920T) | Integrator/AP+CM920T(ARM) | |
ARM9E(ARM966E-S) | Integrator/AP+CM966E-S(ARM) | |
m32r | GNU開発環境 | |
M32R(M32102S6FP) | M3A-2131G50(三菱電機) | |
M32R(M32102S6FP) | M3A-ZA36(三菱電機) | |
m32c-renesas | Renesas社の開発環境 | |
M32C | OAKS32(オークス電子) | |
microblaze | GNU開発環境 | |
MicroBlaze | MIREF(YDK) | |
MicroBlaze | MIRE_MULTI3000(YDK) | |
MicroBlaze | MultiMedia Board(Xilinx) | |
MicroBlaze | Suzaku(アットマークテクノ) | |
tms320c54x | TI社の開発環境 | |
TMS320C54x(TSM320C5402) | TMS320VC5402 DSK(TI) | |
xstormy16 | GNU開発環境 | |
xstormy16 | 三洋マイコン開発ツール(三洋半導体) | |
m16c-renesas | Renesas社の開発環境 | |
M16C(M30620FCAFP-CPU) | OASKS16(オークス電子) | |
M16C(M30262F8FG-CPU) | OAKS16-MINI(オークス電子) | |
s1c33 | GNU開発環境 | |
SC33 | DMT33209(EPSON) | |
SC33 | LUXUN2(EPSON) | |
s1c33-gnu33 | GNU33開発環境 | |
SC33 | DMT33209(EPSON) | |
SC33 | LUXUN2(EPSON) | |
nios2 | GNU開発環境 | |
Nios2 | NiosII Development Board(アルテラ) | |
v850 | GNU開発環境 | |
V850 | TK-850/KJ1+(Application Corp.) | |
V850 | TK-850/SG2(Application Corp.) | |
tlcs900 | 東芝セミコンダクタ社の開発環境(TOSHIBA IDE) | |
TMP91CY22-CPU | Zup-F16拡張ボード(タマデン工業(株)) |
以下のターゲットは、以前のバージョン(1.4.1)のコードからアップデート されておらず、動作確認を行っていないため、1.4.2以降では、参考実装扱い としています。
ディレクトリ名 | 開発環境 | |
---|---|---|
![]() |
プロセッサ(型番) | システム(メーカ名) |
h8 | GNU開発環境 | |
H8(H8/3048F) | AKI-H8/3048F(秋月電子通商) | |
H8(H8/3069F) | NKEV-010H8(品川通信計装サービス) | |
h8s | GNU開発環境 | |
H8S(2350) | H8S/2350 評価ボード(ミスポ) | |
powerpc32 | GNU開発環境 | |
PowerPC32(MPC860T) | TB6102S(タンバック) | |
mips3 | GNU開発環境 | |
MIPS3(VR4131) | KZ-Vr4131PCI-01(京都マイクロコンピュータ) | |
MIPS3(VR5500) | RTE-VR5500-CB(64)(マイダス・ラボ) |
TOPPERS/JSPカーネル リリース1.3でサポートしているターゲットプロセッサ およびターゲットシステムは以下の通りです。
ターゲットプロセッサ | ターゲットシステム |
---|---|
M68040(MC68LC040) | DVE-68K/40(電産) |
SH3(SH7709A) | SH-CARD CARD-E09A(セイコーエプソン) |
SH3(SH7709A) | MS7709ASE01(日立超LSIシステムズ) |
SH3(SH7709) | MU-200-RSH3(三菱電機マイコン機器ソフトウエア) |
SH3(SH7708) | DVE-SH7700(電産) |
SH4(SH7750) | CQ RISC評価キット/SH-4(CQ出版) |
SH1(SH7032) | KZ-SH1-01(京都マイクロコンピュータ) ※ RISC評価キットSH-1(CQ出版)でも動作 |
SH1(SH7032) | SH1/CPUB(常盤商行) |
H8(H8/3048F) | AKI-H8/3048F(秋月電子通商) |
H8(H8/3067F) | AKI-H8/3067F(秋月電子通商) |
H8S(H8S/2350) | MISPO H8S/2350 EVA(ミスポ) |
ARM7TDMI(KS32C50100) | Evaluator-7T(ARM) |
V850(μPD703107) | RTE-V850E/MA1-CB(マイダス・ラボ) |
M32R(M32102S6FP) | M3A-2131G50(三菱電機) |
MicroBlaze | Insight VirtexII V2MB1000(MEMEC) |
TMS320C54x(TSM320C5402) | TMS320VC5402 DSK(TI) |
i386 | PC/AT互換機 |
TOPPERS/JSPカーネルRelease 1.4.3対応 Lattice製LatticeMico32依存部パッケージ | ||
本パッケージは、TOPPERS/JSPカーネルに対応したLattice製LatticeMico32依 存部です。TOPPERS/JSPカーネルRelease 1.4.3に本パッケージに含まれるファイルをマージすることで、下記ターゲットボードにてTOPPERS/JSPカーネルを動作させることができます。
|
JSPカーネルのシミュレーション環境として、Linux上で動作する環境と Windows上で動作する環境を用意しています。これらのシミュレーション環境 は、Linux および Windows の一つのプロセスの中で複数のタスクを切り替え て動作させるもので、スレッドライブラリとして使うこともできます。
また、以下のプロセッサでは、GNUで提供されるプログラムやメーカーが提供 する開発ツール環境を用いることで、組込み用マイコンの動作をパソコン上で シミュレーションすることができ、評価用ボード等を用意することなく、JSP カーネルを動作させることができます。各シミュレーションツールについては、 JSPカーネル リリースパッケージに含まれるドキュメントを参照してください。
プロセッサ | シミュレーションツール |
---|---|
Xstormy16 | 三洋マイコン開発ツール |
TOPPERS/JSPカーネルは、GCCなどのGNU開発環境を標準のソフトウェア開発環 境としています。インライン関数やインラインアセンブラ機能など、GCCの拡 張機能を用いている部分があります。ただし、GNU開発環境がサポートしてい ないターゲットプロセッサなどに対しては、他の種類のコンパイラを用いてい ます。例えば、Windows上のシミュレーション環境には、Visual C++を用いて います。
GCCへのパッチ |
JSPカーネル1.4で、C++バインディングを使用する場合、パッチが必要となり ます。以下は、Cygwin上でGCC 3.2.3のmake時に発生する障害を回避するため のパッチです。 以下は、GCCをTOPPERS/JSPカーネルに対応させるためのパッチです。 詳細は、JSPカーネルの配布キットに含まれるドキュメントや、 ユーザズメーリングリストでの回答をご覧ください。 |
GNU開発環境 | ||||||
GNU開発環境の中で、具体的には、BINUTILS、GCC-CORE、GDBが必要です。また、 アプリケーションプログラムで標準ライブラリを必要とする場合には、NEWLIB を用いることができます。開発環境を Windows上に構築する場合には、Cygwin が必要です。これらのソースコードは、以下からダウンロードすることができ ます。
Cygwin用のSHのBINUTILS,GCC-CORE,GDBのバイナリが、以下にあります。 /usr/local/で展開して、/usr/local/sh/binにパスを通して使用してください。
ホストマシンとターゲットシステムをシリアルインタフェースで接続し、GDB (GNUデバッガ)を用いてリモートデバッグを行う場合には、ターゲットシス テム上にスタブと呼ばれるプログラムが必要です。TOPPERS/JSPカーネルと一 緒に使えるように改造したスタブのソースプログラムは、以下にあります。
|
H8 用簡易モニタ | ||
以下では、H8 用簡易モニタを配布しています。(株)ルネサステクノロジー 製 H8 のフラッシュ ROM の書込み回数には制限があるため、 デバッグ用モ ジュールをフラッシュ ROM に書込んでデバックするのは、あまりよい方法で はありません。この H8 簡易モニタは、デバッグ用モジュールを RAM にロー ドして実行するためのプログラムです。 フラッシュ ROM には、 この H8 簡易モニタをは書込んでおき、デバッグ用モ ジュールを H8 の内蔵 RAM、または外部に増設した RAM にロードし、 デバッ グを行いますので、H8 のフラッシュ ROM の書込み回数制限の問題を回避する ことができます。 H8 用簡易モニタの概要を以下に示します。
|
SH |
宮城県産業技術総合センターでは、CQ出版RISC評価キットSH-1に付属するデバッ ガに対応したバージョンを、 こちらから配付しています。 |
Solution Engine MS7751RSE01 |
(有)スペースソフトが、(株)日立超LSIシステムズ製Solution Engine MS7751RSE01へ移植されました。移植手順の紹介とカーネルの配布をこちらから行っています。 |
Blackfin |
酔漢さんが、Analog Devices社のDSPであるBlackfinへ移植されました。 この件に関するページが、 こちらにあります。移植したシステムに関する文書もこのページから辿ることができます。また、このページでは、JSPカーネルのターゲット依存部の解析メモも公開されています。 |
Xtensa |
(株)ソフィアシステムズが、 テンシリカ(株)のプロセッサXtensaへの移植とサポートを行っています。 |
Plamo Linux |
岸田昌巳さんが、i386 Plamo Linux 2.1 でコンパイル・実行するため に必要だった修正について報告されたメールが、こちらにあります。 |
PPCのLinux |
やまぐちたかゆきさんが、Linuxのシミュレーション環境をPPCのLinux で構築されました。若干問題はあるようですが、基本的には使えるとのことで す。この件に関するメールが、こちらとこちらにあります。 |
Free BSD |
船田悟史さんが、FreeBSDのLinuxエミュレータ上で動かされた際のロ グが こちらにあります。 |
Cygwin |
ma2takさんが、Linuxのシミュレーション環境をCygwinで動作するよう にされました。動作は不安定ということです。この件に関するメールが、こちらにあります。 |
TOPPERSプロジェクトのメンバとして、TOPPERS/JSPカーネルの開発に参加 している開発スタッフは次の通りです(所属は参加した時点のもの)。
名前 | 所属 | 時期 | 担当 |
---|---|---|---|
高田広章 | 豊橋技術科学大学 情報工学系(現在、名古屋大学 情報科学研究科) | 2000年〜 | JSPカーネル本体, M68040 |
若林隆行 | 豊橋技術科学大学 情報工学系 | 2000年〜 | Windowsシミュレーション環境, コンフィギュレータ, V850(JSPカーネル1.3), M32R |
本田晋也 | 豊橋技術科学大学 情報工学系(現在、名古屋大学 情報科学研究科) | 2000年〜 | SH3, SH4, ARMV4, MicroBlaze, Nios2 Linuxシミュレーション環境 |
今井和彦 | 宮城県産業技術総合センター | 2000年〜 | SH1,PowerPC |
阿部司 | 苫小牧工業高等専門学校 情報工学科 | 2001年〜 | H8 |
邑中雅樹 | (資)もなみソフトウェア | 2001年〜 | i386 |
西山零士 | 豊橋技術科学大学 情報工学系 | 2001年〜 2004年 |
TMS32054x |
- | 宮城県産業技術総合センター | 2002年〜 | H8S |
松川竜彦 | 三洋半導体(株) | 2003年〜 | Xstormy16 |
- | 宮城県産業技術総合センター | 2003年〜 | MIPS3 |
- | (株)ヴィッツ | 2006年〜 | TLCS900 |
※ 開発スタッフの名前は、掲載を了承された方のみ記載しています。