[Suzaku:00410] Re: nan表示
email@hidden
2005年 9月 8日 (木) 10:53:31 JST
雨海と申します。
まだSUZAKUを使い始めたばかりです。
初投稿です。よろしく御願いします。
Takashi Sato <email@hidden> さん wrote
>SUZAKU-Vボードの
>topコマンドやwgetコマンドにて、
>表示にnanと表示される事があります。
>
>#top
>------------------------------------------------------------------------
>-
> PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU
>COMMAND
> 1 root 15 0 472 472 420 S nan nan 0:03 0 init
> 2 root 15 0 0 0 0 SW nan nan 0:00 0
>keventd
>...
>------------------------------------------------------------------------
SUZAKU-Vで浮動小数点が動かないという問題ですよね。
やはり浮動小数点が動かないと過去の資産が使えませんし、
データロガーのような組込み用途でも、統計処理を内部で行いたい
場合にかなり辛いです。
私はクロスコンパイル環境の作り直し+αでなんとか逃げ切りました。
まず、BUILDROOT を使って、コンパイラ類をセットアップします。
http://buildroot.uclibc.org/
make menuconfig で設定するときに、
Toolchain Optionsで、
Use software floating point by default をチェックします。
makeすると色々出来上がります。
で、
buildroot/build_powerpc_nofpu/staging_dir/powerpc-linux-uclibc/bin/
以下にあるgccを使って、-static でライブラリもスタティックにリンク
してしまえば、浮動小数点演算可能な実行ファイルを得られます。
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c;
a = 10.0;
b = 2.0;
c = sqrt(a + b);
printf("Hello, world! %f\n", c);
return 0;
}
# ./a.out
Hello, world! 3.464102
とりあえず、自分のプログラムだけでよければ、これで対応できると
思います。
上記のプログラムで、実行ファイルサイズは約43kbytesです。
staticなリンクをやめ、SUZAKUに付いてきたツール類全体を
浮動小数点対応にするには、このコンパイラを使い、
かつSUZAKUに付属しているuCLibcを上記buildrootで使った物に
入れ替えます。
あちこちに小細工が必要になるのですが、なんとか動きつつあります。
# top
10:12am up 14 min, 0 users, load average: 0, 0, 0
11 processes: 10 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: 0.1% user, 0.2% system, 0.0% nice, 99.6% idle
Mem: 29660K av, 3484K used, 26176K free, 0K shrd, 1048K
buff
Swap: 0K av, 0K used, 0K free 1068K
cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
85 root 15 15 384 384 300 R N 2.8 1.2 0:00 top
1 root 21 15 292 288 232 S N 0 0.9 0:00 init
2 root 21 15 0 0 0 SWN 0 0 0:00 keventd
:
:
うまく手順をまとめることができましたら報告します。(^^;
(すでにぐちゃぐちゃになっているような気が...)
----
Sanritz Automation
ITE Div. Solution-SE Gr.
Akihiro AMAGAI<email@hidden>
suzaku メーリングリストの案内