関連スペック:
- FPv4-SP FPU (Cortex M4F) を搭載した STM32F407IG プロセッサ。
- STM32F40G-EVAL 開発ボード;
- IAR 組み込みワークベンチ - ARM、v6.50
質問: FP 計算の前にプログラムで FPU をオンにし、終了時に再びオフにするにはどうすればよいですか?
- IAR EWARM は、ビルド前にプロジェクト オプションで FPU をオフ/オンにする機能を提供します
SystemInit()
の前に呼び出されるではmain
、次のコードが実行されます。#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ #endif
これにより、CPACR ビット [23:20] が 1 に設定されることに注意してください。これは必須です。そうしないと、次の FPU アセンブラー命令で HardFault IRQ が呼び出されます。しかし、これを無効にすると、消費電力の削減などの追加の影響がありますか、それともこのレジスタはコプロセッサ (FPU) を監視するだけですか?
それ以上の意味がない場合、おそらく CPACR を介して「オフにする」ことは何も達成せず、FPU 命令セットコマンドを実行している間のみ FPU が追加の電力を消費することを示します。
ありがとう、