[Armadillo:04155] Re: Armadillo-500 VFP 環境構築

Takenoshita Koyo email@hidden
2009年 3月 30日 (月) 11:08:16 JST


> VFPを正式サポートしていると思い購入いたしました。
> 正式サポートしていない旨、HPの製品紹介等分かりやすいところに
> 明記していただきたかったです。
誤解を招く表現があったようです。
お詫びいたします。

> liblzoのvfpパッケージの作成方法をご教授ください。
基本的には、コンパイラにarm-vfp-linux-gccを使用し、
CFLAGSに"-mfloat-abi=softfp -mcpu=arm1136jf-s -mfpu=vfp"を追加することで、
オリジナルのアプリケーションや追加のライブラリをコンパイルできると思います。

参考として、現時点での最新のソースを使用して
Armadillo-500で使用されているi.MX31のコアであるARM1136JF-SのVFPを有効にしたイメージを
作成する一連の手順を以下に記載します。

使用した環境、ソースは以下の通りです。
開発環境   : ATDE2 20071018
atmark-dist: atmark-dist-20090318
カーネル   : linux-2.6.26-at4
ライブラリ : liblzo2 (2.02-2) (Debian etchのソースパッケージから)

1. 開発環境のインストール
arm-vfp対応のコンパイラとライブラリをインストールします。

以下のサイトにある、*.debファイルを"dpkg -i"で全てインストールしてください。
http://armadillo.atmark-techno.com/filebrowser/armadillo-500/cross-dev/deb/arm-vfp

2. ライブラリをビルドする
まずは、ソースを取得します。
[PC ~]$ apt-get source liblzo2-2

CFLAGSで"-mfloat-abi=softfp -mcpu=arm1136jf-s -mfpu=vfp"を有効にして
arm-vfp-linux-gccを使用してビルドします。
インストール先は、/usr/arm-vfp-linux-gnuにします。
[PC ~]$ cd lzo2-2.02
[PC ~/lzo2-2.02]$ ./configure --enable-shared --host=arm-vfp-linux CC=arm-vfp-linux-gcc --prefix=/usr/arm-vfp-linux-gnu CFLAGS="-mfloat-abi=softfp -mcpu=arm1136jf-s -mfpu=vfp"
[PC ~/lzo2-2.02]$ make
[PC ~/lzo2-2.02]$ sudo make install
[PC ~/lzo2-2.02]$ cd ../

3. カーネル、ユーザランドイメージを作成する
"-mfloat-abi=softfp -mcpu=arm1136jf-s -mfpu=vfp"を有効にするパッチ(添付ファイル)をatmark-distに当て、
カーネルとユーザランドを作成します。

[PC ~]$ ls
atmark-dist-20090318 linux-2.6.26-at4 a500-vfp-fix.patch
[PC ~]$ cd atmark-dist-20090318
[PC ~/atmark-dist-20090318]$ patch -p1 <  ../a500-vfp-fix.patch
[PC ~/atmark-dist-20090318]$ ln -s ../linux-2.6.26-at4 linux-2.6.x
[PC ~/atmark-dist-20090318]$ make menuconfig

"Kernel/Library/Defaults Selection"で
"(arm-vfp) Cross-dev" を選択

[PC ~/atmark-dist-20090318]$ make

~/atmark-dist-20090318/images 以下にvfp対応のカーネルとユーザランドが作成されます。



参考に、VFP有効/無効でどの程度処理速度に差があるのか調べるため、
whetstone[*1]でベンチマークをとってみました。

VFP無効(デフォルト)
> [email@hidden (ttymxc0) ~]# whetstone 10000
> 
> Loops: 10000, Iterations: 1, Duration: 357 sec.
> C Converted Double Precision Whetstones: 2.8 MIPS

VFP有効
> [email@hidden (ttymxc0) ~]# whetstone 100000
> 
> Loops: 100000, Iterations: 1, Duration: 51 sec.
> C Converted Double Precision Whetstones: 196.1 MIPS

約70倍という結果となりました。

以上、ご参考になれば。

[*1] http://www.netlib.org/benchmark/whetstone.c

-- 
Koyo Takenoshita
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: a500-vfp-fix.patch
型:         text/x-patch
サイズ:     1767 バイト
説明:       無し
URL:        <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20090330/685c053e/attachment.bin>


armadillo メーリングリストの案内