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

Stm32F4XX开启FPU浮点运算

[复制链接]
STMCU小助手 发布时间:2022-12-28 17:00
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 单精度硬件浮点
2 k; t8 e+ t5 U; u% H+ P8 N% ]#fpv4-d16 or fpv4-sp-d16 cortex-M4 单精度硬件浮点
5 b, a4 P6 |% o/ v4 E" H8 V; B# \#fpv5-dp-d16 cortex-M7 双精度硬件浮点,这个在GCC下编译不通过,不确定是否正确
" ?) C7 v- Q2 l* ^/ T0 b8 Y, i; b% }- V& I* a4 @, C

: w7 n2 }; f9 w2 x! f! f% P5 z开启STM32 浮点运算,需要设置下面的参数:# y/ S$ K6 B. U* x" [9 d  G
M4内核:
" b: j; b$ b" T# ]  a-mfpu=fpv4-sp-d164 `6 _- n! ]3 k9 J8 S
M7内核:
- ~: I# a9 i4 z2 R# n-mfpu=fpv5-sp-d16
& t- Z) _* D  W1 [# J9 G" C
# g; n7 g9 e7 E% I( \, J( Y
% L- `% a5 N) b" R2 D
-mfloat-abi=hard #这里=soft的话就是软件模拟浮点运算,非常耗时。
) G& k  i% ~) ?6 @& p另外rtthread下开启FPU后gcc下编译工程报错的话,还需要加上 -Wa,-mimplicit-it=thumb
& A: X$ o1 \/ A, u5 P' bError: thumb conditional instruction should be in IT block – `strexeq r1,r2,[r4]’& l0 }. Y/ V2 z7 I- T2 G
  1.     timer1 = HAL_GetTick();
    + p$ q. o+ x& r: {$ o
  2.     for(uint32_t i = 0; i < 1000000U; i++)
    ' R- x  X, t' [# A4 E9 n5 [" H
  3.     {
    ( P. G6 }% S( c  {
  4.       res = a*b;
    : d$ x5 w- d! S% T) N
  5.     }
    1 y+ {% ^0 Y8 C; p  N
  6.     printf("current timer is %lu\n",HAL_GetTick() - timer1);& z' V! A! K# o# y; j
  7.     res +=1;
    0 e& j. ~$ Y$ c% m1 T
  8.     rt_thread_delay(5000);
    ! Y) y5 p) i7 l- Z$ ]: x- b
复制代码

! ~# Q* X* ^+ {- Z3 r开启FPU的情况下,运算100万次flot运算,时间时209个tick,我这里时209个ms,
2 V, Q, \; G% `# l/ A关闭FPU的情况下,运算100万次flot运算,时间时555个tick,我这里时555个ms,
* ]- ^' |2 i* r2 y/ k0 B7 i可见FPU对浮点运算性能提升还是有非常大帮助的。9 h" v3 C3 y% l. {: D( j
————————————————" X1 ^' B: l! B2 H' s$ t
版权声明:tony++
3 k. ?9 K5 k" ^; I5 u1 Q+ A
' A; q7 @$ \7 u8 h% E- D4 c
收藏 评论0 发布时间:2022-12-28 17:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版