第一步:
在stm32f4xx.h中定義巨集__fpu_present ; __fpu_used
#define __cm4_rev 0x0001 /*!< core revision r0p1 */
#define __mpu_present 1 /*!< stm32f4xx provides an mpu */
#define __nvic_prio_bits 4 /*!< stm32f4xx uses 4 bits for the priority levels */
#define __vendor_systickconfig 0 /*!< set to 1 if different systick config is used */
#define __fpu_present 1 /*!< fpu present */
#define __fpu_used 1
第二步:
在stm32f4xx.h中增加標頭檔案arm_math.h
#include
"core_cm4.h"
/* cortex-m4 processor and core peripherals */
#include
"system_stm32f4xx.h"
#include
#include
"arm_math.h"
第三步:
在system_stm32f4xx.c的systeminit()中新增如下**:
void systeminit(void)
}
定時器時鐘為84m,不分頻。
開啟fpu運算時長為22×1/84 us;
不開啟fpu運算時長為192×1/84 us;
可見開啟fpu浮點運算乘除法快了8.7倍!!!
KEIL中STM32F4系列使能FPU
操作步驟 1 在keil使能fpu,參考下圖 2 在keil新增fpu的巨集定義 3 一些配置巨集說明 target fpu vfp fpu的條件編譯配置巨集 開和關 配置該巨集,則開 arm math matrix check 庫函式引數檢查配置巨集 開和關 arm math rounding 庫...
STM32F4外設配置速查 FPU與DSP部分
詳細內容參考cortex m4核心程式設計手冊 stm32f4xx及更高配置stm32微控制器才有fpu支援 stm32f4帶有32位單精度硬體fpu,支援浮點指令集,整個fpu單元能被使能和關閉 使用協處理器控制暫存器 scb cpacr 中的cp11和cp10啟用 關閉fpu 晶元復位後,cp1...
STM32F4之FPU效能的充分發揮 設定要點
浮點運算一直是定點cpu的難題,比如乙個簡單的1.1 1.1,定點cpu必須要按照ieee 754標準的演算法來完成運算,對於8位微控制器來說已經完全是噩夢,對32為微控制器來說也不會有多大改善。雖然將浮點數進行q化處理能充分發揮32位微控制器的運算效能,但是精度受到限制而不會太高。對於有fpu 浮...