2017/05/05

AVR Studio7 浮動小数表示のためのリンカ設定

充電器の充電流値の記録をこれまでの Slip21 から Teraterm へ変更したプログラミングしたけど,
表示が ? を出力し上手くいかない。デジタル高精度温湿度センサ HDC1000 の表示も同様だ。Studio7 の最新版をインストールしたせいだろうか。最初,ビットシフトのマクロである _BV が悪影響を及ぼしているのではないかと3日,悩んだ。単純なテストプログラムの結果,リンカ設定が必要な事を思い出した。再インストールしたら,前回の設定は無視されるのだろうと思う。

Atmel マニュアルによれば,
-Wl,-u,vfprintf -lprintf_flt -lm

の設定をすべきだそうだ。AVR Studio7 の場合だと,メニュの Project > Properties をクリックし,ToolChain をクリックすると Linker の設定ができる。私は,libm.a と libprint_flt.a を追加した。
AVRlinker.png 

1年前の浮動小数表示トラブルを忘れていたのは驚きだ。加齢のせいかな。一度設定するとリンカもコンパイラも変える必要もないせいもあるかもしれない。

いかに浮動小数演算がリソースと CPU を浪費するか。仕事で使っていた機械系 CAD の CADAM は浮動小数演算で AutoCAD は整数型だった。CADAM は結局,大手だけで中小は AutoCAD が大勢を占めた。実数型データは取扱が直観的だけど,整数型はデータ処理が高速にできるのだろうと思う。



参考

関連記事

コメント

非公開コメント