TOPPERS/JSP カーネル for Bishop マニュアル
Bishop向けTOPPERS/JSPカーネルを使用するための手順です。
TOPPERS/JSPカーネルとは、μITRON4.0仕様に準拠したリアルタイムカーネルで、TOPPERSプロジェクトの開発成果です。 TOPPERS/JSPカーネルの詳細についてはTOPPERSプロジェクトを参照してください。
株式会社パイロンが独自に配布する非公式なバージョンです。本ソフトウェアについてTOPPERSプロジェクトへの質問はお控えください。
TOPPRES/JSPカーネルのサポートは実験的なものです。実用レベルに達していないことを予めご了承ください。
- 1. ROMイメージ
- 2. Bishopボードでの使用方法
- 3. Bishopエミュレータでの使用方法
- 3.1. Linux
- 3.2. Windows
- 3.3. オプション
- 4. ビルド方法
- 4.1. クロス開発ツールのインストール
- 4.2. ソースコードの入手
- 4.3. ソースコードの展開
- 4.4. ビルド
- 5. qemu-bishopとgdbによるデバッグ
1. ROMイメージ
Bishop向けTOPPERS/JSPカーネルのROMイメージファイルを下記の場所からダウンロードします。
| TOPPERS/JSP カーネル for Bishop | |||
| toppers-jsp-bishop-1.4.3-pylone0.bin ROMバイナリ | 1.4.3-pylone0 | ダウンロード | 28.0KB |
2. Bishopボードでの使用方法
を参考に、ダウンロードしたROMイメージファイルをNOR上の開始アドレス0番地に書き込みます。
本手順によって、元のROMイメージの内容は書き換えられてしまう点にご注意ください。
書き込みが終了したらBishop本体とHostPCをシリアルケーブル(クロス)で接続し、Bishop本体の電源を入れます。TOPPERS/JSPカーネルのシリアルポートの設定は以下の通りです。
| ハードウェアフロー制御 | Off |
|---|---|
| ソフトウェアフロー制御 | Off |
| ボーレート | 115200 |
| データビット | 8 |
| パリティ | なし |
| ストップビット | 1 |
HostPC側のシリアルコンソールへの設定方法等はBishopドキュメント:クイックスタートを参照してください。
3. Bishopエミュレータでの使用方法
Bishopエミュレータがインストールされている環境を前提とします。
3.1. Linux
qemu-bishopでは起動したディレクトリにあるu-boot.binというファイルをエミュレーションするアドレス空間の0番地に読み込み、起動します。Bishop向けTOPPERS/JSPカーネルは開始アドレス0番地に設置する必要があるため、ROMイメージファイルを任意のディレクトリにダウンロードした後、下記の様にしてファイルをリネームします。(x.x.xはダウンロードしたファイル名に合わせてください)
$ mv toppers-jsp-bishop-x.x.x.bin u-boot.bin既に本来のu-boot.binが存在する場合は消去されてしまいますので必要に応じてバックアップしてください。
ダウンロードした任意のディレクトリにて、以下のコマンドでqemu-bishopを実行します。
$ qemu-bishop -M pe201a -serial stdio -kernel dummy -mtdblock /dev/null -nographicこの時、
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カーネルの動作に影響はありません。
3.2. Windows
C:/Program Files/qemu-bishop/にROMイメージファイルをu-boot.binという名称でダウンロードし、スタート > すべてのプログラム > qemu-bishop > qemu-bishop (PE-201A) から実行します。
必要に応じて元のu-boot.binをバックアップしてください。
3.3. オプション
Linux環境においてqemu-bishopに指定したオプションを以下に解説します。下記以外のオプションに関してはBishop エミュレータマニュアル:主なオプションを参照してください。
- -nographic
- グラフィカルディスプレイ出力エミュレーションを無効にし、コマンドラインアプリケーションとしてQEMUを起動します。
4. ビルド方法
4.1. クロス開発ツールのインストール
クロス開発ツールのインストール (Debian編, Fedora編) を参照してください。
4.2. ソースコードの入手
Bishop向けTOPPERS/JSPカーネルのソースコードを下記の場所からダウンロードします。
| TOPPERS/JSP カーネル for Bishop | |||
| toppers-jsp-bishop-1.4.3-pylone0.tar.bz2 ソースコード | 1.4.3-pylone0 | ダウンロード | 996.4KB |
4.3. ソースコードの展開
ソースコードを適当な作業ディレクトリに展開します。
$ tar xjvf toppers-jsp-bishop-0.0.1.tar.bz2展開したディレクトリに移動します。
$ cd toppers-jsp-bishop-0.0.14.4. ビルド
Bishop用にビルドします。
$ cd cfg $ make depend $ make CC=g++-4.2 $ cd - $ perl ./configure -C armv4 -S bishop $ make depend TARGET_PREFIX=arm-linux-gnu- $ make TARGET_PREFIX=arm-linux-gnu-
現時点(2009/02/24)では、カーネルコンフィギュレータ(cfg)はgcc-4.3系ではコンパイルできません。
ビルド完了後、jspというファイル名でELFバイナリが生成されるので、必要に応じて、
$ arm-linux-gnu-objcopy -O binary jsp toppers-jsp-bishop.binとしてRAWバイナリへと変換します。
5. qemu-bishopとgdbによるデバッグ
gdbからqemu-bishop上のTOPPERS/JSPカーネルをデバッグする方法に関して記載します。 手順としては、Bishop エミュレータマニュアル:gdbによるデバッグとほぼ同一です。
ここでは、Bishop向けTOPPERS/JSPカーネルのソースコードディレクトリパスを~/toppers-jsp-bishop、qemu-bishop起動ディレクトリを~/bishop-romとします。
まず、デバッグ対象バージョンのソースコードを前述のビルド手順にてビルドしELFバイナリを生成します。(デバッグ情報を付加するコンパイルオプションは予めMakefileにて設定しています)
次に、生成されたELFバイナリからRAWバイナリをqemu-bishop起動ディレクトリに取得します。
$ cd ~/toppers-jsp-bishop $ arm-linux-gnu-objcopy -O binary jsp ~/bishop-rom/u-boot.bin
-s,-Sオプション付きでqemu-bishopを起動します。
$ cd ~/bishop-rom $ qemu-bishop -M pe201a -serial stdio -kernel dummy -mtdblock /dev/null -nographic -s -S
最後に、ビルドしたTOPPERS/JSPカーネルのソースディレクトリでgdbを起動し、qemu-bishopに接続します。
$ cd ~/toppers-jsp-bishop $ arm-linux-gnu-gdb jsp GNU gdb 6.6.90.20070912-debian Copyright (C) 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i486-linux-gnu --target=arm-linux-gnu"... No symbol table is loaded. Use the "file" command. (gdb) target remote localhost:1234 Remote debugging using localhost:1234 0x00000000 in vector_table ()
例として システム依存初期化関数である_kernel_sys_initialize()にブレークポイントを設定し、実行してみます。
(gdb) break _kernel_sys_initialize Breakpoint 1 at 0x2bac: file ./config/armv4/bishop/sys_config.c, line 130. (gdb) continue Continuing. Breakpoint 1, _kernel_sys_initialize () at ./config/armv4/bishop/sys_config.c:130 130 { (gdb) list 125 /* 126 * ターゲットシステム依存の初期化 127 */ 128 void 129 sys_initialize(void) 130 { 131 init_clock(); 132 133 init_ports(); 134 (gdb)
ブレークしているsys_initialize()の本名は_kernel_sys_initialize()です。jsp_rename.hにてシンボル名を置き換えています。
著作権と免責
Copyright © 2008-2010 Pylone, Inc.
この文書の著作権は株式会社パイロンが保有します。
この文書は「現状のまま(as is)」で提供され、明示的であるかどうかを問わず、内容についてなんら保証するものではありません。
この文書には、技術的な誤り、誤植、不適格な表現や未完成部分等を含む可能性があります。従って、この文書は予告無しに追加、変更、削除される可能性があります。
この文書は「クリエイティブ・コモンズ-表示-2.1-日本 以降」(CC-by-2.1 or later) の下で配布されています。