硬汉嵌入式论坛

 找回密码
 立即注册
查看: 891|回复: 1
收起左侧

[其它] GCC硬件浮点相关问题 double类型

[复制链接]

22

主题

40

回帖

106

积分

初级会员

积分
106
发表于 2024-11-20 13:41:11 | 显示全部楼层 |阅读模式
最近刚接触gcc和makefile,在开启M4核硬件浮点(单精度)的时候遇到了以下问题。
# cpu
CPU = -mcpu=cortex-m4

# fpu
FPU =
# float-abi
FLOAT-ABI = -mfloat-abi=soft
这样配置,使用软件浮点,计算double数据没有问题。

# fpu
FPU = -mfpu=vfpv4-d16

# float-abi
FLOAT-ABI = -mfloat-abi=hard
这样配置,将double类型都改为float类型也没有问题。

# fpu
FPU = -mfpu=vfpv4-d16

# float-abi
FLOAT-ABI = -mfloat-abi=softfp但是此时这样配置,想使用软硬件浮点混合使用,遇到double类型计算时,会进入hardfault。





# fpu
FPU =

# float-abi
FLOAT-ABI = -mfloat-abi=softfp去掉FPU的配置,double计算正常,同时也看到汇编使用了硬件浮点指令,这样的配置正确吗?以上所有的配置,除了soft纯软件外,读取寄存器确认FPU都开启了。所以这个地方到底怎么配置才算是可以正确开启软硬件混合的方式呢。





回复

使用道具 举报

22

主题

40

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2024-11-20 16:11:21 | 显示全部楼层
FPU = -mfpu=fpv4-sp-d16

被AI坑了,这样设就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-13 05:02 , Processed in 0.035651 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表