
Stm32F4XX和Stm32H7XX开启FPU浮点运算" B7 c( G [% N( z #softvfp 软浮点8 z/ y4 C- B" j* H, W) v* B9 t #fpv5-d16 or fpv5-sp-d16 cortex-M7 单精度硬件浮点 #fpv4-d16 or fpv4-sp-d16 cortex-M4 单精度硬件浮点 #fpv5-dp-d16 cortex-M7 双精度硬件浮点,这个在GCC下编译不通过,不确定是否正确 , i; b% }- V& I* a4 @, C 开启STM32 浮点运算,需要设置下面的参数:# y/ S$ K6 B. U* x" [9 d G M4内核: -mfpu=fpv4-sp-d164 `6 _- n! ]3 k9 J8 S M7内核: -mfpu=fpv5-sp-d16 % L- `% a5 N) b" R2 D -mfloat-abi=hard #这里=soft的话就是软件模拟浮点运算,非常耗时。 另外rtthread下开启FPU后gcc下编译工程报错的话,还需要加上 -Wa,-mimplicit-it=thumb Error: thumb conditional instruction should be in IT block – `strexeq r1,r2,[r4]’& l0 }. Y/ V2 z7 I- T2 G
开启FPU的情况下,运算100万次flot运算,时间时209个tick,我这里时209个ms, 关闭FPU的情况下,运算100万次flot运算,时间时555个tick,我这里时555个ms, 可见FPU对浮点运算性能提升还是有非常大帮助的。9 h" v3 C3 y% l. {: D( j ————————————————" X1 ^' B: l! B2 H' s$ t 版权声明:tony++ |