300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > STM32~FPU协处理器

STM32~FPU协处理器

时间:2021-10-23 03:06:56

相关推荐

STM32~FPU协处理器

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宏打开,开发人员只需去编写算法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。