STM32启用FPU浮点运算

这篇文章产生背景:其他人的文章太杂了,对我这种菜鸡无法接受;

参考文章:

stm32h743单片机嵌入式学习笔记7-FPU_stmh743vit4-CSDN博客

stm32F407 打开 FPU(浮点运算处理器)_stm32f407开启fpu-CSDN博客

STM32F4+CubeMX+Hal库下使能FPU_stm32cubemx 怎么配置开启fpu-CSDN博客

本人发布文章

2024.9.13

使用STM32G4系列使用cubemax产生工程;

重点:怎么打开FPU浮点硬件运算;

1、不需要多余的操作,不需要去定义宏,也不需要你去写什么打开操作;

重点1:

完毕!可以使用FPU了;我不知道为啥能搞一堆乱糟糟的东西;

触发原理:

不想了解的,可以不用看;

1、首先需要去寄存器打开这个FPU的硬件使能

这个打开在.S文件的上电复位就有,

原函数在

文件:system_stm32g4xx.c

void SystemInit(void)

原型:

cpp 复制代码
void SystemInit(void)
{
  /* FPU settings ------------------------------------------------------------*/
  #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
    SCB->CPACR |= ((3UL << (10*2))|(3UL << (11*2)));  /* set CP10 and CP11 Full Access */
  #endif

  /* Configure the Vector Table location add offset address ------------------*/
#if defined(USER_VECT_TAB_ADDRESS)
  SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#endif /* USER_VECT_TAB_ADDRESS */
}

编译后,编译后,编译后:三次且加粗:为什么需要编译,操作重点1后,没有编译,勾选后不生效;

跳转定义如下两个定义:能跳转,并且都是1,那么就打开FPU:SCB->CPACR这两个寄存器可以查手册;

__FPU_PRESENT

__FPU_USED

尽管跳转后是灰色的:但是跳转过来指示的行,定义是 1,而不是下面的0;所以已经宏开启,FPU已经开启了

相关推荐
FreakStudio9 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
✎ ﹏梦醒͜ღ҉繁华落℘14 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
u1521096484914 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd84510150014 天前
RS485 总线详解
单片机·嵌入式硬件
半条-咸鱼14 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
牛根生同志14 天前
SPI数据收发的时候 TXE与RXNE标志位置位的时机
stm32·spi·transfer
wohoo_wangzi14 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
goldenrolan14 天前
学习型红外控制系统稳定性挂测工装专项总结
软件测试·python·stm32·嵌入式·红外
✎ ﹏梦醒͜ღ҉繁华落℘14 天前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展14 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件