完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
小弟最近使用STM32H743做了一个项目,运行了RT-Thread系统,组件主要使用了lwip、littleffs文件系统,硬件设计上有一个看门狗芯片,手册给出的喂狗时间是1.7S左右。
我在软件里面开了一个线程喂狗,喂狗线程优先级是最高的,喂狗周期是rt_thread_mdelay 100个毫秒。 现在遇到问题是,10几台设备,每次连续运行,10几个小时后就有1-2台重启了,由于不能连接仿真器、串口等调试工具,问题查起来非常麻烦,我开始怀疑是不是进入hardfault导致重启,然后就在RTT的hardfault回调里面加入了测试代码,将hardfault信息直接写入到flash里面保存,这样重启后拆机读取看看,人为制造hardfault测试是可以信息保存到flash的并读取的。 这样修改后,进行了测试,然而重启的设备里面没有任何hardfault信息,已排除意外掉电造成的重启。 各位坛友有没有遇到类似的情况? |
|
相关推荐
1个回答
|
|
有多种可能的原因导致STM32H743异常重启,以下是一些常见的原因:
1. 看门狗超时:如果喂狗线程未按时喂狗,看门狗芯片可能会导致系统重启。您已经在软件中设置了喂狗线程,但是可能存在一些问题导致无法正常喂狗,例如线程优先级设置不正确或线程被其他较高优先级的任务阻塞等。您可以检查看门狗芯片是否正常工作,喂狗线程是否按时运行,并排除这个问题。 2. 程序bug:可能存在一些程序bug导致硬件重启,例如无效的指针操作、栈溢出、异常中断等。您可以在硬件重启时,通过读取flash中的hardfault信息进行分析,以了解是否发生过hardfault。 3. 电源问题:不稳定的电源可能导致系统重启,例如电压下降、电源波动,或者由于电源设计不合理导致的问题。您可以检查供电情况,尤其是在设备数量较多时,可能会存在电源不足的问题。 4. 温度问题:STM32H743芯片可能因为过热而重启。如果设备工作环境温度较高,可能会导致芯片温度过高,进而触发重启保护机制。您可以检查设备的散热情况,确保芯片能够正常散热。 5. 外设冲突:使用的外设可能存在冲突或者配置问题,导致系统重启。例如,如果外设的电平或者时序不正确,可能会导致系统重启。您可以逐个排查外设的配置和使用情况,确保其正确和稳定。 针对您的情况,您可以优先排查喂狗线程是否按时执行和喂狗功能是否正常工作,然后检查程序是否存在bug,以及查看Flash中保存的hardfault信息。另外,您还可以考虑排除电源和温度问题,进行必要的优化和调试。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1784 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1088 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
729 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1680 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
734浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
559浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 21:11 , Processed in 0.779974 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号