STM32~FPU协处理器
来源:互联网 发布:ik hr人力资源软件 编辑:程序博客网 时间:2024/06/05 12:49
1、FPU浮点运算单元
浮点单元支持单精度浮点计算、一些转换操作、存储器访问和寄存器组间的数据传输。
对于没有浮点运算单元的MCU(51、AVR),CPU是按照IEEE-754标准的算法来完成运算,消耗资源多,运算时间长。对于有FPU协处理器,浮点运算是由相关指令完成。现在有硬件浮点运算能力的主要有高端DSP,通用CPU和高级的ARM+DSP处理器等。
2、STM32的FPU浮点运算单元
STM32F4带有32单精度硬件FPU支持浮点指令集。相比Cortex-M3、Cortex-M0等高出数十倍甚至上百倍的运算性能。
STM32M7/H7及以上处理器带有双精度硬件FPU。
FPU单元是芯片上一个独立于CPU处理的浮点运算单元,整个单元可以被使能和关闭。
3、CPACR寄存器
浮点寄存器包括SCB中的CPACR(协处理器访问控制寄存器)、浮点寄存器组、浮点状态和控制寄存器FPSCR、用于浮点运算和控制的其他寄存器。对于FPU使能和关闭,CPACR寄存器位于0xE000ED88处,可通过CMSIS-core中的SCB->CPACR来访问。
芯片复位后,CP10和CP11 四个位默认为0,FPU是关闭的,此时禁止访问协处理器(禁止了硬件FPU)。将这四个位设置为1,即可完全访问协处理器,从而开启硬件FPU功能。一般该操作是在SystemInit()函数内执行,如下是汇编版的
4、HAL库开启FPU
一、直接设置SCB->CPACR寄存器的CP10和CP11,开启FPU。
二、配置全局宏定义标识符__FPU_USED 的值为1,一般M4的工程都有是否支持FPU、是否使用FPU的宏。
一般开发过程中无需更改CPACR这部分代码,只需把__FPU_USED宏打开,开发人员只需去编写算法。
- STM32~FPU协处理器
- FPU协处理器作用
- FPU协处理器指令集
- FPU协处理器指令集
- STM32的FPU体验
- stm32 FPU 注意事项
- FPU
- ARM处理器的浮点运算单元(FPU)
- STM32处理器定时器分析
- STM32处理器 RTC分析
- STM32处理器存储空间布局解析
- STM32处理器输入捕获分析
- STM32处理器的AD难点整理
- 关于STM32处理器的HardFault_Handler错误原因
- 协处理器
- 协处理器
- 协处理器
- 协处理器
- for和while
- Java学习17 网络编程
- 数据库创建、数据泵导入导出等操作
- 向数据库存储读取图片方法总结
- 每日练习
- STM32~FPU协处理器
- spring的module-context.xml文件报找不到dubbo.xsd文件错误
- 机器学习实用教程(译)-1
- Array Partition I[LeetCode 561]
- cvc-complex-type.2.4.a: Invalid content was found starting with element
- C#图解教程 学习笔记!!
- 机器学习_初识attention
- Spring 注解的作用
- SpringBoot初始教程之Servlet、Filter、Listener配置