次の方法で共有


浮動小数点を有効にする

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)