STM32 浮点加速

浮点加速功能,需要STM32硬件上拥有FPU单元,此外代码工程需要设置编译选项,将浮点运算编译成特殊的指令,这些特殊指令,可将驱动FPU硬件加速浮点运算。

测试发现,STM32的浮点加速,只能够加速float类型的浮点运算,效果显著(快5~6倍),但是无法加速double类型的浮点运算。

基于Eclipse与GCC编译器开发的工程,浮点加速可以在编译选项中开启,其他IDE开启方法可到编译选项中去寻找。

 

开启后,makefile中的编译选项会出现如下字样:

 开启后,汇编指令会出现带 开头的浮点运算指令:

 如果未开启FPU加速,则汇编指令会多很多条,如下:

而double类型,无论FPU编译选项是什么,都会编译出下图的汇编指令:

 可见,double类型虽然增加了浮点数精度,但是大大降低了运算速度。而float可以借由FPU加速,实现快速计算。具体数据类型选择需要根据实际情况进行

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值