[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 メーリングリストの案内