打印

GD32F305 float 类型变量赋值进入HARDFAULT?

[复制链接]
1313|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ASCC|  楼主 | 2020-7-9 14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GD32F305芯片 定义一个float 类型变量,赋值时进入HARDFAULT这个怎么回事呢

使用特权

评论回复
沙发
sonicll| | 2020-7-9 16:35 | 只看该作者
估计是你的工程设置里启用了FPU,编译生成了浮点指令,但是软件里系统初始化的时候没有打开FPU,导致浮点指令无法执行。
你检查一下SystemInit()里面的这条语句执行了没有:

#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
    SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));  /* set CP10 and CP11 Full Access */
#endif

使用特权

评论回复
板凳
ASCC|  楼主 | 2020-7-9 16:36 | 只看该作者
老芯片不支持fpu,需要关闭该功能,购买时一定要问清楚是否是支持fpu的。

使用特权

评论回复
地板
gwsan| | 2020-8-3 18:28 | 只看该作者
都是这样解决的吗

使用特权

评论回复
5
kxsi| | 2020-8-3 18:28 | 只看该作者
我运行一下试试去

使用特权

评论回复
6
nawu| | 2020-8-3 18:28 | 只看该作者
帮楼主顶一下

使用特权

评论回复
7
qcliu| | 2020-8-3 18:28 | 只看该作者
楼主最后怎么解决的这个问题啊

使用特权

评论回复
8
tfqi| | 2020-8-3 18:29 | 只看该作者
我还没有遇到这个问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

16

帖子

0

粉丝