66212系列 支持硬件浮点单元 ,选择及启用需要遵循以下步骤 (1) 工程设置中Device 选择带.FPU的芯片。 此时编译器在编译浮点运算时,会调用硬件指令。 否则使用软件浮点算法库来实现浮点支持。 (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; } } |