硬汉嵌入式论坛

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

[STM32H7] 关于STM32H743异常重启的问题

[复制链接]

11

主题

21

回帖

54

积分

初级会员

积分
54
发表于 2024-3-18 10:52:56 | 显示全部楼层 |阅读模式
小弟最近使用STM32H743做了一个项目,运行了RT-Thread系统,组件主要使用了lwip、littleffs文件系统,硬件设计上有一个看门狗芯片,手册给出的喂狗时间是1.7S左右。

我在软件里面开了一个线程喂狗,喂狗线程优先级是最高的,喂狗周期是rt_thread_mdelay 100个毫秒。

现在遇到问题是,10几台设备,每次连续运行,10几个小时后就有1-2台重启了,由于不能连接仿真器、串口等调试工具,问题查起来非常麻烦,我开始怀疑是不是进入hardfault导致重启,
然后就在RTT的hardfault回调里面加入了测试代码,将hardfault信息直接写入到flash里面保存,这样重启后拆机读取看看,人为制造hardfault测试是可以信息保存到flash的并读取的。

这样修改后,进行了测试,然而重启的设备里面没有任何hardfault信息,已排除意外掉电造成的重启。

各位坛友有没有遇到类似的情况?
回复

使用道具 举报

75

主题

683

回帖

908

积分

金牌会员

积分
908
发表于 2024-3-18 11:36:12 | 显示全部楼层
上电读取重启标志,判断是什么引起的复位,RCC相关章节可以看一下。
回复

使用道具 举报

11

主题

21

回帖

54

积分

初级会员

积分
54
 楼主| 发表于 2024-3-18 15:04:11 | 显示全部楼层
庄永 发表于 2024-3-18 11:36
上电读取重启标志,判断是什么引起的复位,RCC相关章节可以看一下。

这个试过了,排除了软件调用复位指令,掉电复位。

感觉像是喂狗线程卡死,但是找不到原因。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-3-19 07:27:48 | 显示全部楼层
bigfanofiot 发表于 2024-3-18 15:04
这个试过了,排除了软件调用复位指令,掉电复位。

感觉像是喂狗线程卡死,但是找不到原因。。

保存下这个看看。

STM32H7各种复位原因查找方法
https://www.armbbs.cn/forum.php? ... 0699&fromuid=58
(出处: 硬汉嵌入式论坛)

另外你当前的工程是怎么个喂狗机制。
回复

使用道具 举报

11

主题

21

回帖

54

积分

初级会员

积分
54
 楼主| 发表于 2024-3-19 13:19:33 | 显示全部楼层
eric2013 发表于 2024-3-19 07:27
保存下这个看看。

STM32H7各种复位原因查找方法

硬件设计上有一个看门狗芯片,软件里面开了一个线程喂狗,喂狗线程优先级是最高的,喂狗周期是rt_thread_mdelay 100个毫秒。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-3-19 15:33:15 | 显示全部楼层
bigfanofiot 发表于 2024-3-19 13:19
硬件设计上有一个看门狗芯片,软件里面开了一个线程喂狗,喂狗线程优先级是最高的,喂狗周期是rt_thread_ ...

当前得先锁定下是不是这个喂狗导致的。如果是这个喂狗导致的,那估计是卡死在其他高优先级中断里面了。
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2024-3-19 15:38:57 | 显示全部楼层
bigfanofiot 发表于 2024-3-19 13:19
硬件设计上有一个看门狗芯片,软件里面开了一个线程喂狗,喂狗线程优先级是最高的,喂狗周期是rt_thread_ ...

开软件定时器喂狗
回复

使用道具 举报

11

主题

21

回帖

54

积分

初级会员

积分
54
 楼主| 发表于 2024-3-20 10:54:21 | 显示全部楼层
eric2013 发表于 2024-3-19 15:33
当前得先锁定下是不是这个喂狗导致的。如果是这个喂狗导致的,那估计是卡死在其他高优先级中断里面了。

喂狗线程的优先级是最高的,比喂狗线程还高的只有RTT内核自己了
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
发表于 2024-3-20 16:33:56 | 显示全部楼层
把看门狗芯片去掉,看看还死机?
回复

使用道具 举报

7

主题

18

回帖

39

积分

新手上路

积分
39
发表于 2024-3-20 17:09:30 | 显示全部楼层
看看有没有进MemManage_Handler中断
回复

使用道具 举报

11

主题

21

回帖

54

积分

初级会员

积分
54
 楼主| 发表于 2024-3-21 13:22:49 | 显示全部楼层
pokemonds 发表于 2024-3-20 17:09
看看有没有进MemManage_Handler中断

没有定义这个中断函数
回复

使用道具 举报

11

主题

21

回帖

54

积分

初级会员

积分
54
 楼主| 发表于 2024-3-21 13:26:20 | 显示全部楼层
pokemonds 发表于 2024-3-20 17:09
看看有没有进MemManage_Handler中断

RTT里面这个异常会进入hardfault的,但是我的串口终端没有任何信息记录(最近买了离线串口数据记录模块)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 17:44 , Processed in 0.257404 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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