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]’

    timer1 = HAL_GetTick();for(uint32_t i = 0; i < 1000000U; i++){res = a*b;}printf("current timer is %lu\n",HAL_GetTick() - timer1);res +=1;rt_thread_delay(5000);

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

Stm32F4XX开启FPU浮点运算相关推荐

  1. STM32F4 FPU浮点运算单元

    FPU 即浮点运算单元(Float Point Unit).浮点运算,对于定点 CPU(没有 FPU 的 CPU) 来说必须要按照 IEEE-754 标准的算法来完成运算,是相当耗费时间的.而对于有 ...

  2. mdk arm开启FPU报错问题

    问题描述: mdk使用arm complier v6 开启FPU报错问题. 问题分析: 如果是使用arm v5版本编译器,按照下述步骤进行配置,然后编译是没有问题的: 在C/C++选项卡中添加下列宏定 ...

  3. mdk 使用arm complier v6开启FPU报错问题

    网上很多教程都有写stm32如何开启FPU,比如这篇(https://blog.csdn.net/Stduo/article/details/78669079),写的比较详细,但是时代在进步,当我们使 ...

  4. stm32F407 打开 FPU(浮点运算处理器)

    没有开浮点处理器时 开了处理器时 开FPU主要分两步 1.编译器打开浮点数产生指令 2.在初始化函数中打开FPU //system_stm32f4xx.c void SystemInit(void) ...

  5. MDK AC6开启FPU移植DSP库时报错Error: L6242E: Cannot link object arm_cos_f32.o as its attributes are incompat

    报错 我在keil mdk中使用AC6作为编译器,在给f4移植dsp库时报错,照网上教程配置好了,编译后报错 Error: L6242E: Cannot link object arm_common_ ...

  6. 关于MCU M4内核移植FreeRTOS的笔记

    本次使用华大HC32F460的MCU移植了FreeRTOS,使用的平台是IAR. 废话不多说,先来看看移植 需要的资源. 1.开发平台EWARM-CD-8401-21539. 2.IAR注册机. 3. ...

  7. 使用STM32F4浮点运算(FPU)功能开启+使用DSP库

    涉及到的参数:这里以stm32F4  MDK5.2为例 (1)配置开启FPU功能标志 #define   __FPU_PRESENT       1U   //在stm32f4xx.h 系统已经配置 ...

  8. STM32开启浮点运算单元FPU与DSP运算库,附性能测试

    STM32F4xx属于Cortex M4F架构,自带FPU硬件,可以加速float类型数据的加减乘除运算. 观察启动文件,发现,要启用FPU,需要启动满足两个宏:(__FPU_PRESENT == 1 ...

  9. STM32F4xx FPU和DSP库的使用

    STM32F4xx属于Cortex M4F架构,带有32位的单精度硬件FPU(Float Point Unit),支持浮点指令集,相对比M0和M3架构,浮点运算性能高出数十倍甚至上百倍.CortexT ...

  10. CubeMX生成的STM32F4xx MDK工程FPU和DSP库的使用

    CubeMX生成的STM32F4xx MDK工程FPU和DSP库的使用 STM32F4xx属于Cortex M4F架构,带有32位的单精度硬件FPU(Float Point Unit),支持浮点指令集 ...

最新文章

  1. Win10 + RTX3090 安装CUDA11.2 + CUDNN8.1.0 安装
  2. IDEA 配置 Docker
  3. 阿里资深系统架构师九峰谈云计算
  4. 《轩辕传奇手游》主程序带你拆解MMORPG游戏客户端
  5. 通过 Azure Pipelines 实现持续集成之docker容器化
  6. 房子网签后房产局查不到信息_日本房子:1R、1LDK分不清?凶宅如何分辨?
  7. 上下相机贴合对位计算公式_深圳贴合机生产家介绍;真空贴合机这些产品功能你了解多少...
  8. python中的for语句可以在任意序列_python在循环内任意增加迭代器
  9. 网摘Android调用WebService
  10. 黑马day11 脏读数据amp;解
  11. 数学建模常用解题方法
  12. 平行四边形背景的制作
  13. 1024,身为程序员的我们更应该思考如何放慢脚步
  14. Xcode 报错 ERROR ITMS-90096
  15. vue中全局定义mintUI中toast
  16. ArcGIS的符号选择器(Symbol Selector)为空的解决办法
  17. 【历史上的今天】7 月 8 日:PostgreSQL 发布;SUSE 收购 K8s 最大服务商;动视暴雪合并
  18. Python3 File flush() 方法、 Python3 File write() 方法
  19. 《Cisco IPv6网络实现技术(修订版)》一1.5 IPv5
  20. 异面直线的公垂线公式

热门文章

  1. 飞书小程序和微信小程序的调试
  2. java 生成雷达图,生成echarts雷达图并传到Server端生成图片
  3. 2022蓝帽杯初赛部分wp
  4. 边框颜色和背景色之间的关系
  5. 一张纸厚度是多少毫米_10张纸的厚度大约是多少10张纸能有多厚
  6. vim 怎么显示空格_vi查看空格、制表符等特殊符号
  7. [Unity2D入门教程]简单制作仿植物大战僵尸游戏之③完善Defender植物和Attacker的相关细节(脚本,碰撞体)
  8. 沈华伟:图神经网络及其应用 | 青源Talk第4期
  9. Java选出偶数,Java 定义集合存入20个随机数字,通过自定义方法筛选偶数元素,放入新集合,打印输出...
  10. 数据库服务的启动和停止