Pylone Blog - タグ:toppers-jsp
TOPPERS/JSPカーネル for Bishop
組込みLinux開発用CPUボードBishop向けに移植したTOPPERS/JSPカーネルを公開します。使用したTOPPERS/JSPカーネルのバージョンは 1.4.3 です。
TOPPERS/JSPカーネルとは、μITRON4.0仕様に準拠したリアルタイムカーネルで、TOPPERSプロジェクトの開発成果です。 TOPPERS/JSPカーネルの詳細についてはTOPPERSプロジェクトサイトを参照してください。
株式会社パイロンが独自に配布する非公式なバージョンです。本ソフトウェアについてTOPPERSプロジェクトへの質問はお控えください。
今回の移植は実験的なものです。実用レベルに達していないことを予めご了承ください。
| TOPPERS/JSP カーネル for Bishop | |||
| toppers-jsp-bishop-1.4.3-pylone0.tar.bz2 ソースコード | 1.4.3-pylone0 | ダウンロード | 996.4KB |
| toppers-jsp-bishop-1.4.3-pylone0.bin ROMバイナリ | 1.4.3-pylone0 | ダウンロード | 28.0KB |
移植概要
ゼロからの移植ではなく、標準TOPPERS/JSPカーネルに既に含まれる同一のCPUコアを持つシステムをベースにして移植を行いました。 BishopのCPUコアはARM920Tであるため、ベースにするシステムはIntegrator/AP+CM920Tとしました。
また、サポートしたデバイスは、TOPPERS/JSPカーネルの動作が最低限確認出来るものとして、
- インターバルタイマ
- UART
のみとしました。
Bishopエミュレータによる実行
Bishopエミュレータにて実行する手順です。 予めBishopエミュレータをインストールしたLinux環境を想定しています。
Windows上のBishopエミュレータでの実行手順、及びBishopボードでの実行手順に関しては後述の関連リンクを参照してください。
前述のTOPPERS/JSPカーネルのROMバイナリファイルをダウンロードして、ダウンロードしたディレクトリに移動後、
$ mv toppers-jsp-bishop-1.4.3-pylone0.bin u-boot.bin
としてファイル名称を変更して、
$ qemu-bishop -M pe201a -serial stdio -kernel dummy -mtdblock /dev/null -nographic
としてqemu-bishopを起動します。この時、
failed to open: led.img failed to open: led.img failed to open: led.img failed to open: led.img failed to open: pe201a.img bishop_reset: splash image splash480.bmp.gz was not found bishop_reset: failed to load a kernel image file
と、qemu-bishopがメッセージを出力しますがTOPPERS/JSPカーネルの動作に影響はありません。
次いで、
TOPPERS/JSP Kernel Release 1.4 (patchlevel = 3) for ARM - Pylone Bishop board (Feb 24 2009, 15:21:58)
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2004-2006 by Embedded and Real-Time Systems Laboratory
Graduate School of Information Science, Nagoya Univ., JAPAN
System logging task is started on port 1.
Sample program starts (exinf = 0).
task1 is running (001). |
task1 is running (002). |
task1 is running (003). |
とTOPPERS/JSPカーネルのバナー、及びTOPPERS/JSP付属のサンプルプログラムからのシリアル出力が表示されると思います。
サンプルプログラムは起動中の3つのタスクに関する指示を与えられるようになっており、 例えばレディーキューを回転する'r'を入力すると、task1からtask2へと実行状態のタスクが切り替わります。
Sample program starts (exinf = 0). task1 is running (001). | task1 is running (002). | task1 is running (003). | #rot_rdq(three priorities) task2 is running (001). + task2 is running (002). + task2 is running (003). +
サンプルプログラムの詳細に関しては、TOPPERS/JSPカーネルソースコード内の sample/sample1.c 冒頭のコメント文を参照してください。
TOPPERS/JSPカーネルに標準で付属するWindows上で動作するシミュレータでもタスクの状態を検証する事が出来ると思いますが、今回のBishopエミュレータによる実行も併用すれば、実機によるデバッグをさらに軽減することが出来ると思います。