6621x 硬件浮点单元 FPU

wen sir · 185次点击 · 2023-07-27

66212系列 支持硬件浮点单元 ,选择及启用需要遵循以下步骤


(1) 工程设置中Device 选择带.FPU的芯片。 此时编译器在编译浮点运算时,会调用硬件指令。

否则使用软件浮点算法库来实现浮点支持。

image.png


(2) 代码要启用浮点单元。 

为了低功耗,浮点运算单元默认是关闭的, 因此在Main函数前及睡眠唤醒后,均需要打开浮点处理单元。否则会导致死机。

// Enable the floating point unit for full access
SCB->CPACR |= 0x00F00000;


调用位置1


int main(void)
{
      //Enable the floating point unit for full access
    SCB->CPACR |= 0x00F00000;
    ble_stack_config();
    hardware_init();

    .....

}


调用位置2

static void power_sleep_event_handler(co_power_sleep_state_t sleep_state, co_power_status_t power_status)
{
    switch (sleep_state)
    {
    case POWER_SLEEP_ENTRY:
        break;
    case POWER_SLEEP_LEAVE_TOP_HALF:
        // Enable the floating point unit for full access
        SCB->CPACR |= 0x00F00000;
        peripheral_restore();
        break;
    case POWER_SLEEP_LEAVE_BOTTOM_HALF:

        break;
    }
}


被收藏 0  ∙  0 赞  
加入收藏
点赞
0 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站