GD32E103 Keil 环境下在 FreeRTOS 任务中使用浮点运算报 HardFault 异常的问题

刚开始移植了个SX1262 (LORA芯片)驱动,驱动里面有个计算频率值的地方用到了double 类型,然后直接导致吗GD32进入了硬件错误中断。
当时以为是计算频率的表达式本身有问题。

后来 ,我自己编程过程中用到了float类型,才意识到,是要使用浮点类型变量就会进硬件错误中断。

2.1 HardFault 异常方向排查问题,分析出现的问题

出现 HardFault 硬件错误的原因主要有两个方面:

内存溢出或者访问越界
堆栈溢出
但是从配置角度而言,任务栈空间是足够的,就算加了浮点运算,需要的空间大,我创建任务直接加大栈空间到 2048 问题依旧存在,根据 JLINK 仿真调试也是一头雾水,无果。

修改启动文件 startup_gd32f30x_hd.s 的堆栈空间,增加堆栈空间问题依旧。

原文链接:https://blog.csdn.net/QQ1452008/article/details/121758899

  1. 总结
    问题困扰几天,虽然解决,但不知根本,内心煎熬。后续有时间再来一探究竟!

现已知晓来龙去脉,请看第二回

GD32F30x Keil 环境下在 FreeRTOS 任务中使用浮点运算报 HardFault 异常的问题(二)
https://blog.csdn.net/QQ1452008/article/details/122820744

分析一个关于STM32 芯片异常复位的经典案例!

https://zhuanlan.zhihu.com/p/65086983

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止境2022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值