你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Stm32F4XX开启FPU浮点运算

[复制链接]
STMCU小助手 发布时间:2022-12-28 17:00
Stm32F4XX和Stm32H7XX开启FPU浮点运算$ \0 C6 Q: _0 ]2 h+ D' k
#softvfp 软浮点( u) L; f2 t$ d) i1 n) M) I- H
#fpv5-d16 or fpv5-sp-d16 cortex-M7 单精度硬件浮点1 ^4 z6 X$ B1 A! X
#fpv4-d16 or fpv4-sp-d16 cortex-M4 单精度硬件浮点: y1 }3 @9 \& p4 C& J
#fpv5-dp-d16 cortex-M7 双精度硬件浮点,这个在GCC下编译不通过,不确定是否正确" B* h" s9 y8 G: s% J
; x) g1 e# j5 q3 [/ N. p4 v
/ S# Z5 c, K" O1 Q* R9 w6 N, E; G
开启STM32 浮点运算,需要设置下面的参数:, x( d) ]& ~: f- O4 X
M4内核:' u% `2 l' L4 W5 \" z
-mfpu=fpv4-sp-d165 U, _* |+ p/ V$ Q5 {1 S
M7内核:) g' N3 b: }+ `6 z8 @9 M8 J, f
-mfpu=fpv5-sp-d16
( `6 u; a7 o9 u& y
" G5 Y% v' ^" \" K9 h2 b: a' ^

$ Y6 k& q/ W! @$ q4 x6 ^/ m-mfloat-abi=hard #这里=soft的话就是软件模拟浮点运算,非常耗时。
+ d2 c3 x: [3 q: ^另外rtthread下开启FPU后gcc下编译工程报错的话,还需要加上 -Wa,-mimplicit-it=thumb7 \) i2 B) C+ n5 Q- g/ J& T' @
Error: thumb conditional instruction should be in IT block – `strexeq r1,r2,[r4]’
7 G8 T+ p" l9 R' c! Y3 W6 L
  1.     timer1 = HAL_GetTick();: M6 I) C2 O) Q6 S/ q
  2.     for(uint32_t i = 0; i < 1000000U; i++)! q/ Y4 e- N2 C7 ?9 p7 v* l
  3.     {- p, T" ^4 [; S- U' z1 o1 ?
  4.       res = a*b;
    2 x- i4 W! x$ @+ [* Y; \
  5.     }7 ^" U. N3 u/ _8 P: |7 g* }
  6.     printf("current timer is %lu\n",HAL_GetTick() - timer1);9 r! N2 Z) o' i, N! a
  7.     res +=1;
    9 U, |5 Q# E# X$ j
  8.     rt_thread_delay(5000);( a9 z- Q& `0 K# Z) |
复制代码

% D0 j' G$ Q( ^5 P3 A9 n开启FPU的情况下,运算100万次flot运算,时间时209个tick,我这里时209个ms,+ g: J! y  [/ K0 Y# s- j
关闭FPU的情况下,运算100万次flot运算,时间时555个tick,我这里时555个ms,1 x9 k: K" M  z3 ], S8 `. h
可见FPU对浮点运算性能提升还是有非常大帮助的。
& z' \7 i! _3 M+ H* H% A( G* o————————————————
5 ^- y0 ~, n! s版权声明:tony++3 R3 d1 n/ u4 P
( K) D) J& d8 E0 e% o5 L
赞 收藏 评论0 发布时间:2022-12-28 17:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版