打印

GD32E235C8T6莫名进入HardFault中断

[复制链接]
1711|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
YONNHOR|  楼主 | 2024-12-19 09:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
各位大佬,将ST的代码移植到GD32E235C8T6,在运行过程中会出现卡死现象,仿真运行后发现是跑到了HardFault中断里面去了。

发生的时间事不固定的,有时运行半小时左右就发生,有时会运行1~2个小时才出现,代码在ST的MCU上运行完全没有问题。

检查了数组和指针等,均没有发现有异常的地方。

在HardFault中打了断点,根据SP保存的地址,反查发现进入中断前是在执行RTOS的代码,遂怀疑堆栈是否有溢出,检查完个人认为应该没有溢出的(第一次根据网上的方法检查,不确定是否正确),于是增大堆栈,运行结果还是一样,问题没有解决。

目前已经没有任何思路了,有怀疑是不是这个MCU自身的问题,但是不知道怎么验证。

还请各位大佬帮忙提供下思路,帮忙分析下,可能会是什么问题导致的?

使用特权

评论回复
沙发
elephant00| | 2024-12-19 13:42 | 只看该作者
看看是不是时钟设置不正确

使用特权

评论回复
板凳
fxyc87| | 2024-12-19 13:53 | 只看该作者
这种问题无非就是数组越界,下载线一直连在,让他在调试模式,出问题时,根据堆栈一点点找到上级调用代码

使用特权

评论回复
地板
YONNHOR|  楼主 | 2024-12-19 14:17 | 只看该作者
fxyc87 发表于 2024-12-19 13:53
这种问题无非就是数组越界,下载线一直连在,让他在调试模式,出问题时,根据堆栈一点点找到上级调用代码 ...

上面有截图,你看看

使用特权

评论回复
5
YONNHOR|  楼主 | 2024-12-19 14:19 | 只看该作者
elephant00 发表于 2024-12-19 13:42
看看是不是时钟设置不正确

MCU主频是72M的,我配置成48M使用,sysTick时基是对的。

使用特权

评论回复
6
两只袜子| | 2024-12-19 15:00 | 只看该作者
检查所有外设(如UART、SPI、I2C等)的初始化代码,要与GD32E235C8T6的寄存器定义和配置要求相匹配。

使用特权

评论回复
7
阿巴斯| | 2024-12-19 15:38 | 只看该作者
数组越界、非法指针、栈溢出、中断没有中断处理函数,都会产生硬件错误,都检查下

使用特权

评论回复
8
jcky001| | 2024-12-19 16:00 | 只看该作者
可能是中断向量表设置有误

使用特权

评论回复
9
cr315| | 2024-12-19 17:00 | 只看该作者
堆栈溢出导致的?

使用特权

评论回复
10
laocuo1142| | 2024-12-19 18:00 | 只看该作者
检查动态内存分配有无内存泄漏或无效的内存访问。

使用特权

评论回复
11
YONNHOR|  楼主 | 2024-12-19 18:59 | 只看该作者
laocuo1142 发表于 2024-12-19 18:00
检查动态内存分配有无内存泄漏或无效的内存访问。

这个有点不懂,请问如何排查

使用特权

评论回复
12
YONNHOR|  楼主 | 2024-12-19 18:59 | 只看该作者
cr315 发表于 2024-12-19 17:00
堆栈溢出导致的?

如果是堆栈,该如何验证这个问题?

使用特权

评论回复
13
flycamelaaa| | 2024-12-19 19:00 | 只看该作者
检查RTOS任务优先级和调度

使用特权

评论回复
14
YONNHOR|  楼主 | 2024-12-19 19:02 | 只看该作者
两只袜子 发表于 2024-12-19 15:00
检查所有外设(如UART、SPI、I2C等)的初始化代码,要与GD32E235C8T6的寄存器定义和配置要求相匹配。 ...

这些都没有问题,外设工作都正常。

使用特权

评论回复
15
classroom| | 2024-12-19 19:56 | 只看该作者
估计MCU本身的质量问题

使用特权

评论回复
16
powerantone| | 2024-12-19 20:00 | 只看该作者
存在资源竞争?

使用特权

评论回复
17
probedog| | 2024-12-19 20:12 | 只看该作者
如果代码中包含内联汇编或特定于ST MCU的指令,请确保它们在GD32E235C8T6上是有效的或已被正确替换。

使用特权

评论回复
18
YONNHOR|  楼主 | 2024-12-19 20:33 | 只看该作者
classroom 发表于 2024-12-19 19:56
估计MCU本身的质量问题

这个怎么去跟原厂辩论呢

使用特权

评论回复
19
YONNHOR|  楼主 | 2024-12-19 20:34 | 只看该作者

不知道呀,一头雾水

使用特权

评论回复
20
YONNHOR|  楼主 | 2024-12-19 20:35 | 只看该作者
probedog 发表于 2024-12-19 20:12
如果代码中包含内联汇编或特定于ST MCU的指令,请确保它们在GD32E235C8T6上是有效的或已被正确替换。 ...

GD这款芯片是M23内核,ST是M0内核,M23是M0的增强版,按理应该指令都兼容

使用特权

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

本版积分规则

5

主题

26

帖子

0

粉丝