[STM32F4] 如何在STM32F407中使用FPU。

[复制链接]
 楼主| 地瓜patch 发表于 2025-7-30 21:23 | 显示全部楼层 |阅读模式
想用STM32F407 Discovery利用FPU进行开发。
我需要运行一些浮点数和指数计算。需要使用FPU来加速计算过程。
我已经完成了外设驱动程序(我没有使用Cube HAL层或CMSIS层的代码)。
如何利用处理器的FPU来执行浮点计算?需要编写代码还是需要添加某些库?
我试过在设置中启用硬件的FPU,但当我执行浮点/双精度计算时,代码陷入了死循环,我猜测这是因为缺少执行浮点计算的代码或FPU未被使用?
如何执行基于软件的浮点计算。
我需要向代码中添加哪个库。

磨砂 发表于 2025-8-1 10:45 | 显示全部楼层
进入“Configuration”选项卡,确保勾选FPU功能。此操作会自动设置相关寄存器,使FPU处于活动状态
香水城 发表于 2025-8-1 11:06 | 显示全部楼层
晓伍 发表于 2025-8-1 13:08 | 显示全部楼层
在启动文件中添加以下代码以手动激活FPU
LDR.W R0, =0xE000ED88      // 加载FPU控制寄存器地址
LDR R1, [R0]              // 读取当前值
ORR R1, R1, #(0xF << 20)   // 设置权限位(允许所有访问级别)
STR R1, [R0]              // 写回寄存器
DSB                       // 数据同步屏障
ISB                       // 指令同步屏障


八层楼 发表于 2025-8-1 15:39 | 显示全部楼层
在C代码中配置FPU的控制寄存器,例如启用单精度模式
观海 发表于 2025-8-1 17:58 | 显示全部楼层
通过调试模式查看汇编代码是否包含以[size=0.875]V开头的指令,这是FPU生效的标志
guanjiaer 发表于 2025-8-1 20:17 | 显示全部楼层
STM32F4系列仅支持单精度浮点。双精度运算可能导致异常错误,所以建议优先使用[size=0.875]float而非double
heimaojingzhang 发表于 2025-8-1 22:35 | 显示全部楼层
对于三角函数等复杂计算,调用ARM优化过的数学库函数
keaibukelian 发表于 2025-8-2 09:22 | 显示全部楼层
在多任务或中断场景下,需确保FPU状态正确保存,避免寄存器冲突。可通过临界区保护关键代码段
paotangsan 发表于 2025-8-2 11:41 | 显示全部楼层
若应用无需高精度计算,可禁用FPU以节省功耗和代码空间。使用时应注意浮点运算会增加代码体积和执行时间
renzheshengui 发表于 2025-8-2 13:56 | 显示全部楼层
进行快速傅里叶变换时,结合DSP库与FPU可实现高效信号处理。此时需预先配置好DSP模块参数,并利用FPU加速中间过程的浮点矩阵运算
wowu 发表于 2025-8-2 16:20 | 显示全部楼层
主频设为168MHz时,启用FPU后10万次乘法运算时间从32153μs降至5954μs,性能提升约6倍
youtome 发表于 2025-8-4 11:58 | 显示全部楼层
需要在启动代码中启用FPU              
 楼主| 地瓜patch 发表于 2025-8-4 14:17 | 显示全部楼层
香水城 发表于 2025-8-1 11:06
下面文章供参考下:

感谢版主,已经学习
uiint 发表于 2025-8-4 14:48 | 显示全部楼层
stm32f407浮点运算优化              
bartonalfred 发表于 2025-8-4 16:45 | 显示全部楼层
启用FPU的步骤 启用FPU需设置编译器标志并配置CPACR寄存器,以生成硬件浮点指令并启用FPU。
hilahope 发表于 2025-8-4 20:21 | 显示全部楼层
所有浮点运算均通过软件模拟器实现,速度慢且耗时。
biechedan 发表于 2025-8-4 22:18 | 显示全部楼层
STM32F407具有Cortex-M4内核,支持单精度和双精度浮点运算。
lihuami 发表于 2025-8-5 09:47 | 显示全部楼层
初始化FPU              
yorkbarney 发表于 2025-8-5 11:34 | 显示全部楼层
启用 FPU 后,浮点循环耗时接近整数运算耗时。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1803

主题

14836

帖子

29

粉丝
快速回复 在线客服 返回列表 返回顶部