SW4STM32で実数型をsprintfするときのtips
SW4STM32で実数型の値を出したくて,実数型のフォーマット指定子である%f
をいれてみたらエラーが.
なんでやねんって話である.
これが組み込みプログラミングらしいところで,おそらく実数型のsprintfはコードサイズが増えるため,デフォルトでは利用しないようになっているのではないかと予想する.
エラー文は下記の通り.
The float formatting support (-u _printf_float) is not enabled from linker flags
検索したところ,下記のサイトに以下のような記述を見つけた.
PrintfのFloat出力: Crescent
結論から言うとプロジェクト内のプロパティから、
「C/C++ Build」->[Settings]->
[Tool Settings]->[MCU GCC Linker]->[Miscellaneous]
でLinker flagsの
「-specs=nosys.specs -specs=nano.specs」
から
「-u printf_float」
を追加して
「-specs=nosys.specs -specs=nano.specs -u printf_float」
にすることです。
なるほど.ということでこの通りに設定をいじる.
するとめでたくコンパイルは通り,正しく実数型を扱うことができました.めでたし.