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

Stm32F4XX开启FPU浮点运算

[复制链接]
STMCU小助手 发布时间:2022-12-28 17:00
Stm32F4XX和Stm32H7XX开启FPU浮点运算
#softvfp 软浮点
#fpv5-d16 or fpv5-sp-d16 cortex-M7 单精度硬件浮点
#fpv4-d16 or fpv4-sp-d16 cortex-M4 单精度硬件浮点
#fpv5-dp-d16 cortex-M7 双精度硬件浮点,这个在GCC下编译不通过,不确定是否正确


开启STM32 浮点运算,需要设置下面的参数:
M4内核:
-mfpu=fpv4-sp-d16
M7内核:
-mfpu=fpv5-sp-d16


-mfloat-abi=hard #这里=soft的话就是软件模拟浮点运算,非常耗时。
另外rtthread下开启FPU后gcc下编译工程报错的话,还需要加上 -Wa,-mimplicit-it=thumb
Error: thumb conditional instruction should be in IT block – `strexeq r1,r2,[r4]’
  1.     timer1 = HAL_GetTick();
  2.     for(uint32_t i = 0; i < 1000000U; i++)
  3.     {
  4.       res = a*b;
  5.     }
  6.     printf("current timer is %lu\n",HAL_GetTick() - timer1);
  7.     res +=1;
  8.     rt_thread_delay(5000);
复制代码

开启FPU的情况下,运算100万次flot运算,时间时209个tick,我这里时209个ms,
关闭FPU的情况下,运算100万次flot运算,时间时555个tick,我这里时555个ms,
可见FPU对浮点运算性能提升还是有非常大帮助的。
————————————————
版权声明:tony++

收藏 评论0 发布时间:2022-12-28 17:00

举报

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