解決できないエラー
In included file: "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" clang(pp_hash_error)[21][10]
環境
Mbed Studioを用いて、Mbed LPC1768へサンプルプログラム(mbed-os-example-blinky)のビルド時に発生
###詳細
ビルド自体は問題なく終了しているらしく、マイコンに書き込むとサンプルの挙動をしてくれます。しかしmain文中の#include"mbed.h"にカーソルをかざすと、赤くエラーがでるようになります。(ビルドのときもproblemに表示される)赤くエラーが出ているのにビルドが成功している理由はわからないです。
英語を直訳すると、「FPUが乗っていないデバイスにFPU命令が生成されているよ」でした。FPUがわからなかったため調べてみると、浮動小数点型の処理装置ということでした。clangというコンパイラがエラーを返しているようです。
LPC1768について調べてみると、ArmのCortex-M3が搭載されていると書いてあったので、Mbed Studio上でCortex-M3について検索してみると、mbed_toolchain.pyというファイルにCortexについての情報が記載されていました。その中でちょうど__FPU_PRESENTというフラグが管理されているらしかったので、Cortex-M3についての項目を見てみると、__FPU_PRESENTというフラグはきちんと立てられていませんでした。
逆にフラグを立ててみたらどうだと思い、適当に"__FPU_PRESENT=1"という文をCORETEX_SYMBOLS中の"Cortex-M3"の中に書いてみても全く同じエラーとなり、何も変わっていませんでした(多分実際はフラグとかではない気がします)。
教えてほしいこと
エラーの起きている詳しい原因と具体的な解決方法を教えていただけないでしょうか。
また、今までLPC1768でfloat型などを扱ったことがあるのですが、なぜFPUがのっていないのに処理ができていたのだろうかという疑問が生じました。FPUと浮動小数点型の処理についていまいちよくわかっていないのだと思います。
これについて、参考となる簡単なサイトや解説をいただけるとありがたいです。
どうかよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/10 06:46
2021/12/10 13:45
2021/12/13 07:30
2021/12/13 13:30
2021/12/13 16:11