MT3620 リアルタイム コアの浮動小数点は、既定で無効になっています。 リアルタイム対応アプリケーションの浮動小数点を有効にするには、コプロセッサ Access Control Register (CPACR) を構成し、CMakeLists.txt ファイルに数行を追加する必要があります。
浮動小数点ユニット (FPU) をオンにするには、CPACR のビット 20 から 23 を に0xf
設定します。 たとえば、次の関数は FPU を有効にします。 CPACR アドレスは です 0xE000ED88
。
static void EnableFPU(void)
{
// Cortex-M4 Revision r0p0 Technical Reference Manual
// S 7.3.1, Enabling the FPU
volatile uint32_t *cpacr = (volatile uint32_t *)0xE000ED88;
// [23:20] = 0xF - enable CP10 and CP11
*cpacr |= 0xF << 20;
}
リアルタイム対応アプリケーションに浮動小数点演算を組み込むには、CMakeLists.txt ファイルに次の行を追加します。
target_compile_options(${PROJECT_NAME} PUBLIC -mfloat-abi=hard -mfpu=fpv4-sp-d16)
target_link_libraries(${PROJECT_NAME} PUBLIC -lm -mfloat-abi=hard -mfpu=fpv4-sp-d16)