嵌入式技术论坛
直播中

李梅

7年用户 1274经验值
私信 关注
[问答]

STM32芯片跑飞连IWDG都不起作用了是何原因

STM32芯片:STM32F030C8TX
MCU通过TI 充电芯片供电,在充电芯片给系统供电并给电池充电过程中,主板的温度非常高(表面温度不超80度),导致MCU程序挂了,IWDG都不起作用了,log如下:
[18:04:31][main:] feed_dog
[18:04:31][bq25890:] reg:0xb read: 0x96
[18:04:31][bq25890:] bq25890_led_update_status
[18:04:31]psr: 0x00000000
[18:04:31] pc: 0x00000002
[18:04:31] lr: 0x08007119
[18:04:31]r12: 0x200019f0
[18:04:31]r03: 0x08002f45
[18:04:31]r02: 0x0000f7ff
[18:04:31]r01: 0x00000100
[18:04:31]r00: 0x00000001
[18:04:31]hard fault on thread: bat_thre
[18:04:31] thread pri status sp stack size max used left tick error
[18:04:31]———— —— ———- ————— ————— ————— ————— —-
[18:04:31]%-8.*s 0x08 suspend 0x00000150 0x00000400 0x00000150 0x14 000
[18:04:31]bat_thre 0x02 ready 0x000000c0 0x00000400 0x00000130 0x00000008 000
[18:04:31]tshell 0x19 suspend 0x00000088 0x00000400 0x00000088 0x0000000a 000
[18:04:31]tidle 0x1f ready 0x00000054 0x00000100 0x00000054 0x0000000b 000

部分code:
线程会一直跑:
static void battery_thread(void *p)
{

回帖(3)

王英

2022-9-14 11:24:21
看门狗不起作用了,是不是可以在系统 hard fault 时把 看门狗相关寄存器打印出来,判断看门狗当前工作状态
线程会一直跑是什么意思,hald fault 之后,battery_thread 还会一直运行吗?如果是的话,这里面有没有喂狗的代码?
或者使用 cmbacktrace 查找错误出现再哪里。
举报

李梅

2022-9-14 11:24:34
系统hard fault之后,WDG会复位几次,后来就彻底挂掉了,线程中有喂狗操作,线程肯定不会跑了
举报

张玲

2022-9-14 11:24:42
使用syswatch吧!在应用线程喂狗解决不了根本问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分