Pylone

Pylone Blog

PE-201B販売終了について

Posted by Seiichi SATO

平素より、弊社製品をお引き立ていただき厚く御礼申し上げます。

2010年6月8日をもちまして組込みLinux開発用CPUボード Bishop 6.4インチLCDタイプPE-201Bの販売を終了致します。

なお、4インチLCDタイプPE-201Aは引き続き販売を継続いたします。

今後とも、弊社ならびに弊社製品をご愛顧賜りますよう、お願い申しあげます。

本件に関するお問い合わせ

E-mail: sales@pylone.jp

TOPPERS/JSPカーネル for Bishop

Posted by Masashi YOKOTA

組込み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エミュレータによる実行も併用すれば、実機によるデバッグをさらに軽減することが出来ると思います。

関連リンク

Bishopバージョンアップのお知らせ

Posted by Seiichi SATO

組込みLinux開発用CPUボードBishopに同梱されるソフトウェアのバージョンアップを実施いたします。

旧バージョン新バージョン
U-Boot1.2.0-pylone5 (変更なし)
Linuxカーネル2.6.22.1-pylone02.6.26.8-pylone0
ルートファイルシステムDebian GNU/Linux etch 4.0r3Debian GNU/Linux etch 4.0r5

2009年1月以降にご注文いただいた分から新バージョンにて出荷いたします。

既にご購入いただいたお客様へ

2008年12月までにご購入いただいたお客様につきましては、別途バージョンアップ手順をご案内いたします。

関連リンク

Bishopエミュレータ正式版リリース

Posted by Seiichi SATO

組込みLinux開発用CPUボードBishopエミュレータの正式版をリリースしました。

スクリーンショット (3124050495_0f2b581105.jpg)

ドキュメント

ダウンロード

Bishopエミュレータ
qemu-bishop-0.9.1-pylone1.tar.bz2
ソースコード
0.9.1-pylone1ダウンロード2.3MB
qemu-bishop-0.9.1-pylone1-setup.exe
win32 installer
0.9.1-pylone1ダウンロード1.7MB
qemu-bishop_0.9.1-pylone1-1_i386.deb
deb
0.9.1-pylone1-1ダウンロード461.0KB
qemu-bishop-0.9.1_pylone1-1.i386.rpm
rpm
0.9.1-pylone1-1ダウンロード462.8KB

関連記事

Code Stage用S3C2440Aペリフェラル定義ファイルの公開

Posted by Seiichi SATO

codestage-s3c2440 (3117956236_4fc02ea499_m.jpg)

ビットラン JTAGエミュレータ Code Debugger のデバッガソフト Code Stage 用 S3C2440Aペリフェラル定義ファイルを 公開 します。

定義ファイルをデバッガソフトに追加することによって、直感的なユーザインタフェースでS3C2440Aのペリフェラルレジスタへアクセスできます。

入手方法や使い方については 「DR-01用S3C2440Aペリフェラル定義ファイル」 を参照してください。

関連記事

Bishop向けLinuxカーネルのテスト版 - 2.6.26.8

Posted by Seiichi SATO

正式版を公開しました - 記事: Bishopバージョンアップのお知らせ

Bishop 向け Linux カーネルのテスト版 (2.6.26.8) を公開します。

Linux-2.6.26.8-pylone0
linux-2.6.26.8-pylone0.tar.gz
ソースコード
2.6.26.8-pylone0ダウンロード61.4MB
uImage
バイナリ
2.6.26.8-pylone0ダウンロード1.7MB

BishopエミュレータBeta4リリース

Posted by MINAMI Hirokazu

正式版を公開しました - 記事: Bishopエミュレータ正式版リリース

組込みLinux開発用CPUボードBishopエミュレータBeta4を公開します。

更新履歴

  • 2008/9/26: 初版公開

Beta3からの変更点

ボード画像/LED状態表示のサポート

Bishopの実機では、GPIOポートに対して出力を行うことで、基板上でLED5/LED4/LED8/LED7とラベルされたLEDを制御することができます。

QEMUウィンドウ内にLCDの内容だけでなく、これらのLED状態も表示されるようにしました。起動初期段階のデバッグ等に利用できます。

リリース内容

本エミュレータは、オープンソースのプロセッサエミュレータ QEMUの開発版をベースに、Bishop向けの機能を追加したものです。 本リリースでは Beta3 と比較してエミュレーション可能な機能自体に変更はありません。

各種ペリフェラルのサポート状況
ペリフェラル状況
NORROMとして表現され、NORとしてのコマンドには応答しません。
NAND
LCD
RTC
シリアルポート
イーサネット
GPIOLEDPE-201QにはLEDが存在しないため、201A,201Bエミュレーション時のみ表示されます。
USB(OHCI)マスストレージ高負荷時に不安定になる場合があります。
キーボードホストのキーボードが英語配列でない環境では、一部のキーが正しく解釈されません。
マウス
サウンド再生のみです。
タッチスクリーン
SD/MMC
カメラ×

コンパイル手順

本バージョンでは、ソースコード (qemu-bishop-0.9.1-pylone0rc4.tar.bz2) のみを公開しています。以下の手順でコンパイルすることができます。

必要なもの
  • gcc-3.4 (4.x では動作しません)
  • zlib
  • SDL 1.2
手順
$ ./configure --target-list=arm-softmmu --enable-alsa
$ make

実行

まず、以下のイメージファイルをダウンロードします。画像データ以外のファイルは、従来バージョンで使用していたものがあればそのまま使用できます。

イメージファイルが置かれたディレクトリでqemuを

$ qemu-system-arm -M pe201a -serial stdio -kernel dummy -usbdevice keyboard -mtdblock nand-bishop.img
$ qemu-system-arm -M pe201b -serial stdio -kernel dummy -usbdevice keyboard -mtdblock nand-bishop.img

のように起動してください。

-M オプションに指定された値(pe201a または pe201b) に従って、QEMUウィンドウ内にLCDの内容だけでなく、ボード画像/LED状態も表示されます。

Bishop標準のLinuxカーネルで起動した場合、実機と同様にHeartBeatの処理が開始されるとLEDの表示が変化します。

LEDはGPIOポートバンク'B'の 5,6,7,8 ビットに接続されているので、アドレス0x56000014に値を書くと(対応するピンが出力用に設定されていれば)反映されます。なお、論理は負、0 から数えたビット番号とLEDの対応は以下となります。

ビット番号LED
5LED5
6LED4
7LED7
8LED6

例として、U-Bootプロンプトから4つのLEDすべてを消灯/点灯するには以下のようにします。

# mw.l 56000014 1e0
# mw.l 56000014 000

なお、QEMU上では 1e0 に代わりに ffff などの値を書いても同様の結果が得られますが、実機では 0x1E0 以外の値を設定すると他デバイスの動作に干渉してしまいます。

関連記事

Bishop サンプルコード

Posted by Seiichi SATO

freetype スクリーンショット (freetype-thumb.jpg) 組込み Linux 開発用 CPU ボード Bishopドキュメントサンプルコードを追加しました。

distcc による Linux カーネルのクロスコンパイル

Posted by Seiichi SATO

Bishop のカーネルを distcc による分散クロスコンパイル環境 でクロスコンパイルしてみました。

distcc の FAQ によると

You should use about twice the total number of CPUs available, but it dependson your network, program being compiled, available memory, etc. Experimentwith different values.

とのことなので、 とりあえず -j をプロセッサ・コア数の2倍にします。

まずは localhost 1台で計ってみます。(Xeon 2.40GHz x2, コア x4)

$ time make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage
real    4m0.051s
user    13m14.462s
sys     1m12.329s

ホストを一台追加します。(host2: Pentium D 3.0GHz, コア x2)

$ export DISTCC_HOSTS="localhost host2"
$ time make -j12 ARCH=arm CROSS_COMPILE=arm-linux-gnu- CC="distcc arm-linux-gnu-gcc-4.1" uImage
real    2m4.114s
user    4m38.933s
sys     0m57.964s

もう一台追加します。(host3: Core 2 Duo E6600 2.4GHz, コア x2)

$ export DISTCC_HOSTS="localhost host2 host3"
$ time make -j16 ARCH=arm CROSS_COMPILE=arm-linux-gnu- CC="distcc arm-linux-gnu-gcc-4.1" uImage
real    1m32.039s
user    3m41.718s
sys     1m0.260s

さらにもう一台追加します。(host4: Celeron M 520 1.60GHz, コア x1)

$ export DISTCC_HOSTS="localhost host2 host3 host4"
$ time make -j18 ARCH=arm CROSS_COMPILE=arm-linux-gnu- CC="distcc arm-linux-gnu-gcc-4.1" uImage
real    1m22.078s
user    3m17.572s
sys     1m2.056s

グラフ

グラフ

リンク

DR-01用S3C2440Aペリフェラル定義ファイルの公開

Posted by Seiichi SATO

新しいデバッガソフト Code Stage に対応したペリフェラル定義ファイルを公開しました。記事: Code Stage用S3C2440Aペリフェラル定義ファイルの公開

bitxneo-s3c2440 (2550285207_b001017028_m.jpg)

ビットラン DR-01共通デバッガソフト用 S3C2440Aペリフェラル定義ファイルを 公開 します。

定義ファイルをデバッガソフトに追加することによって、直感的なユーザインタフェースでS3C2440Aのペリフェラルレジスタへアクセスできます。

入手方法や使い方については 「DR-01用S3C2440Aペリフェラル定義ファイル」 を参照してください。

BishopエミュレータBeta3リリース

Posted by Seiichi SATO

正式版を公開しました - 記事: Bishopエミュレータ正式版リリース

組込みLinux開発用CPUボードBishopエミュレータBeta3を公開します。

更新履歴

  • 2008/5/23: 初版公開

Beta2からの変更点

オーディオサポート

再生のみですが、オーディオに対応しました。

SD/MMCサポート

SD/MMCに対応しました。 -sd オプションで指定したディスクイメージファイルをSDカードとして扱うことができます。 ディスクイメージの作成方法は「ディスクイメージのホスト側での操作方法」を参照してください。

バイナリパッケージ

debianパッケージ、RPM、Windows インストーラを用意しました。

リリース内容

本エミュレータは、オープンソースのプロセッサエミュレータ QEMUの開発版をベースに、Bishop向けの機能を追加したものです。 Beta1Beta2 と比較してエミュレーションの精度が向上していますが、まだ実機に存在する全ての周辺機器を正しくエミュレートできるわけではありません。

各種ペリフェラルのサポート状況
ペリフェラル状況
NORROMとして表現され、NORとしてのコマンドには応答しません。
NAND
LCD
RTC
シリアルポート
イーサネット
GPIOLED状態の設定は可能ですが、表示はおこなわれません。
USB(OHCI)マスストレージ高負荷時に不安定になる場合があります。
キーボードホストのキーボードが英語配列でない環境では、一部のキーが正しく解釈されません。
マウス
サウンド再生のみです。
タッチスクリーン
SD/MMC
カメラ×

インストール

Debian

/etc/apt/sources.list に以下の apt-line を加えます。

deb http://downloads.pylone.jp/tools/deb ./

入手可能なパッケージの一覧を更新します。

# aptitude update

qemu-bishop パッケージをインストールします。

# aptitude install qemu-bishop
Fedora

/etc/yum.repos.d/pylone-jp.repo に yum レポジトリを追加します。

[tools]
name=Tools
baseurl=http://downloads.pylone.jp/tools/rpm/
enabled=1
gpgcheck=0

リポジトリ情報を更新します。

# yum update

qemu-bishopパッケージをインストールします。

# yum install qemu-bishop
Windows

インストーラ (qemu-bishop-0.9.1-pylone0rc3-setup.exe) をダウンロードして実行してください。

実行

Linux

まず、以下のイメージファイルをダウンロードします。

イメージファイルが置かれたディレクトリでqemu-bishopコマンドを

$ qemu-bishop -M pe201b -serial stdio -kernel dummy -usbdevice keyboard -mtdblock nand-bishop.img

として起動してください。

  1. U-Bootがメモリに読みこまれて起動
  2. U-BootがLinuxカーネルを読みこみ
  3. LinuxカーネルがNANDのファイルシステムイメージをマウント

の順で実行されます。

-M オプションには、従来の pe201a と pe201b に加えて pe201q を指定することができます。

Windows

「スタート」 → 「すべてのプログラム」 → 「qemu-bishop」

コンパイル手順

ソースコード (qemu-bishop-0.9.1-pylone0rc3.tar.bz2) からビルドする場合の手順です。

必要なもの
  • gcc-3.4 (4.x では動作しません)
  • zlib
  • SDL 1.2
手順
$ ./configure --target-list=arm-softmmu --enable-alsa
$ make

関連記事

BishopエミュレータBeta2リリース

Posted by MINAMI Hirokazu

正式版を公開しました - 記事: Bishopエミュレータ正式版リリース

組込みLinux開発用CPUボードBishopのエミュレータのBeta2版を公開します。

更新履歴

  • 2007/12/28: 初版公開
  • 2008/1/18: ソースコードを qemu 0.9.1 に追従して更新

Beta1からの変更点

開発用仮想ターゲットPE-201Q

エミュレートする環境として提供される仮想ターゲットPE-201Qを追加しました。実機より大きな画面(640x1024)および豊富なNOR領域(128MBytes)が利用可能となるので、開発環境としての利便性が向上します。

タッチスクリーンのサポート

エミュレータウィンドウ上のポインタ操作を、タッチスクリーンへの入力として変換するようにしました。PE-201A/Bとしてエミュレーションを行う場合、タッチスクリーンはキャリブレーション済の状態で起動します。PE-201Qでは変換係数の初期値に意図的にある程度の誤差を残してあります。キャリブレータの動作確認にはPE-201Qを使用してください。

-appendオプション

QEMU起動時に-appendオプションが付加された場合に、U-Bootの環境変数"bootargs"へ反映するようにしました。この環境変数はLinuxカーネルの起動時の引数として渡されます。

-append を指定しないか、空("")とした場合、bootargsの内容は

bootargs=console=ttySAC0,115200 console=tty0 preinit=/pylone root=/dev/mtdblock5 nfsroot=10.0.2.2:/ROOTFS/ ip=10.0.2.15::10.0.2.2:255.255.255.0:::

となります。この場合、特に操作しなければルートファイルシステムとしてNANDが使用されます。

-appendに"xxx=yyy"のような値を指定した場合、bootargsの内容の後半が書き換えられて

bootargs=console=ttySAC0,115200 console=tty0 preinit=/pylone xxx=yyy

となります(この例のままでは"root="が指定されなくなるため、起動に失敗します)。

-append "root=/dev/nfs nfsroot=xx.xx.xx.xx:/XXXXX ip=10.0.2.15::10.0.2.2:255.255.255.0:::"

のように有効な"root="と付加情報を設定すれば、指定に従って起動します(この例の場合は nfs サーバxx.xx.xx.xx の /XXXXX をルートとして)。

コード変換バッファ領域のサイズ変更

QEMU がエミュレーションのために使用するコード変換バッファ領域のサイズを増やしました。エミュレータ上で複雑な処理をおこなわせた場合の速度低下が軽減されています。

QEMUのメモリ消費量がBeta1と比較して増加しているため、十分なメモリを確保しての使用をお勧めします。

ダウンロード

今回のリリースでは、ソースコードのみ提供します。以下のリンク先から取得してください:

ソースコード:
qemu-bishop-0.9.1-pylone0rc2.tar.bz2

今後

  • Debianパッケージ
  • Windowsインストーラ

も準備する予定です。

リリース内容

本エミュレータは、オープンソースのプロセッサエミュレータQEMUの開発版をベースに、Bishop向けの機能を追加したものです。Beta2ではBata1に比較してエミュレーションの精度が向上していますが、まだ実機に存在する全ての周辺機器を正しくエミュレートできるわけではありません。

各種ペリフェラルのサポート状況
ペリフェラル 状況
NOR ROMとして表現され、NORとしてのコマンドには応答しません。
NAND
LCD
RTC
シリアルポート
イーサネット
GPIO LED 状態の設定は可能ですが、表示はおこなわれません。
USB(OHCI) マスストレージ 高負荷時に不安定になる場合があります。
キーボード ホストのキーボードが英語配列でない環境では、一部のキーが正しく解釈されません。
マウス
サウンド ×
タッチスクリーン
MMC ×
カメラ ×

ソースコードからのインストール

必要な環境
  • gcc-3.4 (4.x では動作しません)
  • SDL 1.2

Debian環境では、 # apt-get build-dep qemu を実行することで、必要なパッケージを一括してインストールすることもできます。

構築手順

ソースコードを展開したディレクトリ内で以下の手順を行うことで、実行可能ファイル ./arm-softmmu/qemu-system-arm が生成されます。

configure の実行
$ ./configure --target-list=arm-softmmu
コンパイル
$ make

エミュレータの実行

Bishopエミュレータに実機出荷状態と同様の動作をさせるためには、

を与える必要があります。それぞれのファイルをリンク先からダウンロードし、ソースコードのトップディレクトリに置いた状態で

$ ./arm-softmmu/qemu-system-arm -M pe201b -serial stdio -kernel dummy -usbdevice keyboard -mtdblock nand-bishop.img

として起動してください。

  1. U-Bootがメモリに読みこまれて起動
  2. U-BootがLinuxカーネルを読みこみ
  3. LinuxカーネルがNANDのファイルシステムイメージをマウント

の順で実行されます。

オプション”-M”には、従来の"pe-201a"と"pe-201b"に加えて"pe-201q"を指定することができます。

カーネルイメージを最新のBishop向けカーネルに差し替えると、起動時にタッチスクリーンからルートファイルシステムを選択することができます。

関連記事

Bishop向けLinuxカーネルのテスト版 - 2.6.24-rc6

Posted by Seiichi SATO

Bishop向けLinuxカーネルのテスト版 (2.6.24-rc6) を公開します。

最新版は2.6.26.8です。記事: Bishop向けLinuxカーネルのテスト版 - 2.6.26.8

主な変更点は以下の通りです。

  • 2.6.22.1から2.6.24-rc6へ
  • initrdからinitramfsへ変更
  • エミュレータ上の開発用仮想ターゲットPE-201Qに対応

本カーネルは近日中に正式リリースされる予定です。今後出荷するBishopにもプリインストールされます。これまでご購入いただいたお客様につきましては、アップデート手順をご案内させていただきます。

関連記事

klibcベースのinitramfs

Posted by Seiichi SATO

写真 (rootfs_chooser_screenshot.jpg)

Bishopにプリインストールされている uClibcベースのinitrdを klibcによるinitramfsに変更する予定です。

klibcやinitramfsについては、カーネル付属文書Documentation/early-userspace/READMEを参照してください。JFプロジェクトによる日本語訳もあります。

klibcのサンプル実装として、起動時にタッチスクリーンからルートファイルシステムを選択する仕組みを用意しました。

起動時に表示される画面上のアイコンをタッチすることにより、NAND、NFS、USBマスストレージ、SDカードの何れかからルートファイルシステムを選択できます。

近日中にリリース予定のBishop向けカーネルでは、このカスタムinitramfsも含まれます。

BishopエミュレータBeta1リリース

Posted by MINAMI Hirokazu

正式版を公開しました - 記事: Bishopエミュレータ正式版リリース

Bishopエミュレータのベータ版を公開しました。

動画

パイロンでは組込みLinux開発用CPUボードBishopのエミュレータを開発しています。主要な構成要素についてエミュレーションの実装が終了したので、Beta1として公開します。

今回のリリースでは、ソースコードとWindows向けインストーラの形式で提供します。以下のリンク先から取得してください:

ソースコード:
qemu-bishop-0.9.0cvs20071001-pylone0rc1.tar.bz2
Windows向けインストーラ:
qemu-bishop-0.9.0cvs20071001-pylone0rc1-setup.exe

今後

  • Debianパッケージ

についても準備していく予定です。

リリース内容

本エミュレータは、オープンソースのプロセッサエミュレータQEMUの開発版をベースに、Bishop向けの機能を追加したものです。Bata1の段階では、まだ実機に存在する全ての周辺機器を正しくエミュレートできるわけではありません。

各種ペリフェラルのサポート状況
ペリフェラル 状況
NOR ROMとして表現され、NORとしてのコマンドには応答しません。
NAND
LCD
RTC
シリアルポート
イーサネット
GPIO LED 状態の設定は可能ですが、表示はおこなわれません。
USB(OHCI) マスストレージ 高負荷時に不安定になる場合があります。
キーボード ホストのキーボードが英語配列でない環境では、一部のキーが正しく解釈されません。
マウス
サウンド ×
タッチスクリーン ×
MMC ×
カメラ ×

ソースコードからのインストール

必要な環境
  • gcc-3.4 (4.x では動作しません)
  • SDL 1.2

※Debian環境では、 # apt-get build-dep qemu を実行することで、必要なパッケージを一括してインストールすることもできます。

構築手順

ソースコードを展開したディレクトリ内で以下の手順を行うことで、実行可能ファイル ./arm-softmmu/qemu-system-arm が生成されます。

configure の実行
$ ./configure --target-list=arm-softmmu
コンパイル
$ make

エミュレータの実行

Bishopエミュレータに実機出荷状態と同様の動作をさせるためには、

を与える必要があります。それぞれのファイルをリンク先からダウンロードし、ソースコードのトップディレクトリに置いた状態で

$ ./arm-softmmu/qemu-system-arm -M pe201b -serial stdio -kernel dummy -usbdevice keyboard -mtdblock nand-bishop.img

として起動してください。

  1. U-Bootがメモリに読みこまれて起動
  2. U-BootがLinuxカーネルを読みこみ
  3. LinuxカーネルがNANDのファイルシステムイメージをマウント

の順で実行されて、最終的にログインプロンプトが表示されます。

QEMUによるBishop エミュレーション

Posted by Seiichi SATO

スクリーンショット (qemu_screenshot.png)

このスクリーンショットは現在パイロンで開発中のBishopエミュレータです。オープンソースのプロセッサエミュレータQEMUをベースにしています。ちょっと試しにやってみるかという軽い動機で始めたのですが、作業が進み QEMU への理解が深まるにつれて組込みソフトウェア開発ツールとしての可能性を感じるようになりました。まだ具体的な活用をご提案できるまでには至っていませんが、何か役にたつ使い方があれば紹介していきたいと考えています。

2007/10/12:
Beta1をリリースしました。
2007/12/28:
Beta2をリリースしました。
2008/5/23:
Beta3をリリースしました。
2008/9/26:
Beta4をリリースしました。
2008/12/21:
正式版をリリースしました。

Bishop の発売について

Posted by Seiichi SATO

組込み Linux 開発用 CPU ボード Bishop の発売についてご案内いたします。

価格

型番価格 (税込・送料別)
PE-201A59,800円
PE-201B84,000円

発売日

2007年7月31日

購入方法

弊社の通信販売でお求め頂けます。

ソフトウェア構成

プリインストールされるルートファイルシステムは Debian GNU/Linux 4.0 (etch) を ベースにしたものになります。 以前の記事でお知らせした uClibc による ルートファイルシステムは中止しました。

CPU ボード Bishop (10)『Debian GNU/Linux』

Posted by Seiichi SATO

Debian (debian_60.png)前回の記事 でご紹介した uClibc によるルートファイルシステムとは別に Debian GNU/Linux 環境もご提供させていただく予定です。

組込み Linux 開発において、アプリケーションのクロスコンパイルだけでそれなりの時間を取られてしまった経験のある開発者の方も多いかと存じます。 Debian の豊富なバイナリパッケージをお使いいただければ製品企画段階のデモ機作成などが手軽に行えます。

CPU ボード Bishop (8) 『U-Boot』

Posted by Seiichi SATO

Bishop のブートローダ U-Boot は前身であるPowerPC用ブートローダ ppcboot を他のアーキテクチャにも対応させた組込み向け汎用ブートローダです。 tftpによるネットワークブートなどブートローダとしての機能に加え、 USB、MMC、IDE、MII、PCMCIA、NAND、I2C、SPI など様々なデバイスやバスに対応 したモニタプログラムでもあります。

U-Boot の特筆すべき点は移植性の高さです。アーキテクチャに依存する部分と非依存の部分が分離されているため、コアアーキテクチャさえ対応していれば新しい CPU への対応も比較的少ない作業で済みます。また、デバイスドライバが豊富に用意されているため、対応しているデバイスであればデバイス固有のパラメータを与えるだけで動いてしまう事が多いです。例として、実際に U-Boot を Bishop へ移植した際に追加したコードの一部をご紹介します。

LANコントローラDM9000

DM9000 のドライバは common/dm9000x.c です。ターゲットで動かすためにはアドレスとバス幅を指定します。

include/configs/bishop.h:

#define CONFIG_DRIVER_DM9000    1                        /* ドライバを有効化 */
#define CONFIG_DM9000_BASE      0x20000300
#define DM9000_IO               CONFIG_DM9000_BASE       /* アドレス (I/O) */
#define DM9000_DATA             (CONFIG_DM9000_BASE + 4) /* アドレス (データ) */
#define CONFIG_DM9000_USE_32BIT 1                        /* バス幅 */

NAND

NAND のドライバは drivers/nand/ です。動かすためにはチップの数と NAND コントローラのベースアドレスを指定し、NAND コントローラ固有の処理を追加します。

include/configs/bishop.h:

#define NAND_MAX_CHIPS          1
#define CFG_MAX_NAND_DEVICE     1
#define CFG_NAND_BASE           0x4E000010

board/pylone/bishop/nand.c:

#include <common.h>
#if (CONFIG_COMMANDS & CFG_CMD_NAND) && !defined(CFG_NAND_LEGACY)
#include <nand.h>
#include <s3c2440.h>
static int hwctl = 0;
static void bishop_hwcontrol(struct mtd_info *mtdinfo, int cmd)
{
S3C2440_NAND * const reg = S3C2440_GetBase_NAND();
switch (cmd) {
case NAND_CTL_SETCLE:
                hwctl |= 0x1;
break;
case NAND_CTL_CLRCLE:
                hwctl &= ~0x1;
break;
case NAND_CTL_SETALE:
                hwctl |= 0x2;
break;
case NAND_CTL_CLRALE:
                hwctl &= ~0x2;
break;
case NAND_CTL_SETNCE:
                reg->NFCONT = reg->NFCONT & 0xfffffffd;
break;
case NAND_CTL_CLRNCE:
                reg->NFCONT = reg->NFCONT | 2;
break;
}
}
static void bishop_write_byte(struct mtd_info *mtdinfo, u_char byte)
{
S3C2440_NAND * const reg = S3C2440_GetBase_NAND();
if (hwctl & 0x1)
reg->NFCMMD = byte;
else if (hwctl & 0x2)
reg->NFADDR = byte;
else
reg->NFDATA = byte;
}
static u_char bishop_read_byte(struct mtd_info *mtdinfo)
{
S3C2440_NAND * const reg = S3C2440_GetBase_NAND();
return reg->NFDATA;
}
static int bishop_dev_ready(struct mtd_info *mtdinfo)
{
S3C2440_NAND * const reg = S3C2440_GetBase_NAND();
while (!(reg->NFSTAT & 1));
return 1;
}
void board_nand_select_device(struct nand_chip *nand, int chip)
{
S3C2440_NAND * const reg = S3C2440_GetBase_NAND();
reg->NFCONT = reg->NFCONT & 0xfffffffd;
return;
}
int board_nand_init(struct nand_chip *nand)
{
S3C2440_NAND * const reg = S3C2440_GetBase_NAND();
nand->eccmode = NAND_ECC_SOFT;
nand->hwcontrol = bishop_hwcontrol;
nand->read_byte = bishop_read_byte;
nand->write_byte = bishop_write_byte;
nand->dev_ready = bishop_dev_ready;
reg->NFCONF = 0x0300;
reg->NFCONT = 0x0063;
return 0;
}
#endif /* (CONFIG_COMMANDS & CFG_CMD_NAND) && !CFG_NAND_LEGACY */

CPU ボード Bishop (7) 『JTAG-ICE』

Posted by Seiichi SATO

前回の記事で JTAG-ICE を使わないでフラッシュメモリに書込む方法をご紹介しましたが、実際の開発では JTAG-ICE を用いたデバッグのニーズも多いかと思います。基本的には ARM920T コアを サポートしている JTAG-ICE であれば使用可能ですが、コアだけに対応して CPU 固有 のペリフェラルに対応していない JTAG-ICE では使い勝手はあまりよくありません。

写真 (with_dr01.jpg)Bishop の推奨 JTAG-ICE は ビットラン株式会社様 の DR-01 です。 DR-01 の デバッガソフト は CPU 固有のペリフェラル定義を簡単に追加できます。 パイロンでは S3C2440 用ペリフェラル定義ファイルを公開する予定です。 このペリフェラル定義ファイルをデバッガソフトに追加することによって、直感的なユー ザインタフェースで S3C2440 のペリフェラルレジスタへアクセスできます。

2008/06/07: ペリフェラル定義ファイルを公開

CPU ボード Bishop (6) 『フラッシュメモリの書き込み』

Posted by Seiichi SATO

U-Bootによる書き込み

Bishop にプリインストールされるブートローダ U-BootはOSのブートだけでなくフラッシュメモリの書き込みもできます。フラッシュメモリ上のLinuxカーネルやルートファイルシステムを書き換えるにはU-Bootを使うのがもっとも簡単な方法です。

U-BootによってU-Boot自体を書き換える事も可能ですが、書き込みに失敗した場合は起動できなくなります。お客様がU-Bootを上書きした事による起動の不具合についてはサポート対象外とさせていただきます。

ダウンロードケーブルによる書き込み

図 (fig_jtagparcable.png)

オプションとして販売予定のダウンロードケーブルとライタープログラムを使えば、 PC からNORフラッシュメモリへ書き込む事ができます。U-Bootを使った書き込みでは U-Boot自体の上書きが失敗した場合に起動できなくなってしまいますが、本ケーブルを使えば起動できない状態でも書き込むことができます。フラッシュメモリ書き込みのためだけにJTAG-ICEを購入する必要はありません。

CPU ボード Bishop (5) 『フラッシュメモリ』

Posted by Seiichi SATO

図 (fig_mem.png)Bishop のフラッシュメモリは 4MB の NOR 型 と 128MB の NAND 型です。 NOR は S3C2440 のメモリコントローラに直接つながり、 NAND は S3C2440 の NAND コントローラによって制御されます。

S3C2440 のリセットベクタはメモリコントローラのバンク0 (ROM/RAM の先頭)になります。出荷状態の Bishop では バンク0 は NOR になっていますので、ブートローダは NOR にインストールされます。S3C2440 の Stepping Stone と呼ばれる機能により NAND からもブート可能ですが、Bishop では Stepping Stone をサポート対象外とさせていただきます。

CPU ボード Bishop (4) 『カメラ』

Posted by Seiichi SATO

前々回の記事 でご紹介させていただいた通り、 Bishop の CPU S3C2440 は モバイル機器向けの様々なペリフェラルを内蔵しています。 その中のひとつがカメラインタフェースです。 下の写真はカメラインタフェースに接続できる 1.3M ピクセルの CMOS カメラです。 パイロンでは、このカメラをオプションとして販売することを予定しています。 価格や発売時期などにつきましては、詳細が決まり次第お知らせいたします。

写真 (camera.jpg)写真 (camera_on_bishop.jpg)

CPU ボード Bishop (3) 『タッチパネルと LCD』

Posted by Seiichi SATO

Bishop にはタッチパネルと LCD (TFT) が付属します。サイズは2種類です。

サイズ解像度
6.4インチ640x480 (VGA)
4インチ480x272

写真 (board02.jpg) 6.4インチ (写真) はボードとほぼ同じサイズで解像度は VGA です。 4インチは QVGA をワイドにした感じの 480x272 というちょっと変わった解像 度です。PSP と同じ解像度といえばわかりやすいでしょうか。

タッチパネルからの入力は Linux Input Drivers が提供する仕組みによって 特定のデバイスに依存しない抽象的なイベントとして扱うことができます。 /dev/input/event0 や /dev/input/ts0 に対応したアプリケーションであれば修正す ることなくタッチパネルを使えるでしょう。 サンプルアプリケーションとしてタッチパネルを 利用した手書き入力やソフトウェアキーボードなどもご用意させていただく予定です。

CPU ボード Bishop (2) 『CPU』

Posted by Seiichi SATO

写真 (s3c2440.jpg)Bishop の CPU は ARM920T コアの SAMSUNG S3C2440 400MHz です。価格が安く、海外のポータブルナビ市場におけるシェ アが高いことで知られています。この S3C2440 は SAMSUNG の CPU ラインナップの中 でモバイル SoC と位置付けられ、モバイル機器に必要とされる標準的なペリフェラル を内蔵しています。 Bishop の LCD、タッチパネル、MMC/SD、USB、オーディオなどの 機能も S3C2440 の内蔵ペリフェラルによるものです。

S3C2440 の主な機能:

  • ARM920T コア, 16/32ビット RISC マイクロプロセッサ
  • MMU
  • Internal Advanced Microcontroller Bus Architecture (AMBA2.0, AHB/APB)
  • メモリバンク x8 (ROM/SRAM x6, ROM/SRAM/SDRAM x2)
  • 64ウェイ・セットアソシエイティブ・キャッシュ (I-Cache: 16KB, D-Cache: 16KB)
  • オンチップ MPLL/UPLL
  • パワーモード: Normal/Slow/Idel/Sleep
  • RTC
  • GPIO (24ポートが外部割り込みとして使用可能)
  • 4チャンネル DMA コントローラ
  • LCD コントローラ: STN LCD, TFT LCD
  • A/D コンバータとタッチスクリーンインタフェース
  • 3チャンネル UART
  • I2C バスインタフェース
  • I2S バスインタフェース
  • AC97 Audio CODEC インタフェース
  • USB ホスト x2 (OHCI Rev. 1.0)
  • USB デバイス x1 (USB Specification version 1.1)
  • SD ホストインタフェース (SD Memory Card Protocol version 1.0, SDIO Card Protocol version 1.0, Multimedia Card Protocol version 2.11)
  • SPI インタフェース x2 (Serial Peripheral Interface Protocol version 2.11)
  • カメラインターフェース (最大入力解像度: 4096x4096, 出力フォーマット: RGB 16/24 ビット / YCbCr 4:2:0/4:2:2)
  • コア電圧 1.3V @ 400MHz, メモリ: 1.8V/2.5V/3.0V/3.3V, I/O: 3.3V

CPU ボード Bishop (1)

Posted by Seiichi SATO

これから何回かにわたって、7月発売予定の組込み Linux 開発用 CPU ボード Bishop についての情報をお伝えしたいと思います。予定している内容は以下の通りです。

写真 (board00.jpg)

top
[0] ホーム
[4] 記事一覧
© 2010 Pylone
会社概要 | プライバシー