你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

一个 STM32 芯片异常复位之案例分析

[复制链接]
STMCU小助手 发布时间:2022-7-30 21:41
前言
3 w% f+ V! l0 w1 C5 V本篇主要是介绍一种处理问题的思路,即当我们在做STM32应用开发过程中,遇到芯片异常复位,或者进入了异常处理时,如何通过集成开发环境,如IAR,KEIL等查看相应的ARM内核寄存器,定位出应用软件产生异常的地方!
! j9 I- w- g; I- z1 U+ w8 V' y
, B% K& T3 F3 v3 K# a

3 o. [& L3 g+ I' J/ O# J问题描述
6 Z- T$ [) v  v, g& k4 H4 J某STM32用户反馈,当使用STM32L4芯片的时候,程序运行一段时间后,会忽然复位。复位后程序继续运行,但是还会继续复位,原因不详!
% h; D9 g# ^1 w% U( a) L8 m, }) f% h* E
1 W* v2 c# q. D$ }. h( r  ~; b" X
问题分析! W/ \2 L$ ~8 v  O7 M/ m" s) j
针对于此类问题,我们可以按照一个统一的思路去处理。分析本案例的大致步骤如下:8 W% s: ^: R* X+ ~/ f# H$ x
1、初步确定复位的原因,是硬件复位,如外部NRST被拉低,还是软件复位,包括软件直接调用复位,或者看门狗复位,还是低功耗模式如standby模式被唤醒时产生中断;
0 e0 F+ X6 G" Y; O2 Z9 Z2、查看复位状态寄存器了解复位大方向,然后做进一步得拆解分析。
* w( P8 w8 X, ^- j8 m# ~1 o3、目前客户项目的复位原因是因为看门狗复位,即客户使用了IWDG,但由于某种原因没有及时喂狗,导致IWDG超时复位。初步怀疑由于客户软件的问题,程序跑飞,进入异常处理。
' H8 `2 A# L; u4 q4 h因为客户的异常处理函数中并没有做任何动作,导致独立看门狗IWDG复位。基于此,我们先关闭IWDG,然后在所有的异常处理中,先加入死循环并打上断点,对异常原因进行捕捉。( |; H$ n! Y7 V0 l& C
# c8 S1 d+ U1 q) ]. x0 C; J
C(%N}6`KVU7403%(UCUBPT9.png
$ q1 X7 n/ E8 h WR~V6)GZAII2{2E7A8E}LJ7.png ! R% l) X$ i* D: b9 `

/ {1 g3 s8 ^3 U+ K/ `

" F. V. }. E: n! A; o0 {% S& N9 ?4、正如我们所猜测,的确是由于程序跑飞导致。程序停在了void HardFault_Handler(void) 。
$ L& T( c9 u* A" r* D0 @; b通过查看 SP 以及回溯栈里面的内容,找到了对应的LR,具体方法如下:- t' H; J" K) O6 V& s; V  K

4 ^' q7 }0 Z4 C; E/ ~
% b+ I. j( g3 g) r! y: e
$AMOPYCT1BO_1OI)KS%`B22.png $ f* u5 N& ~& \6 m

4 W: @) g5 Y$ ^% m( z1 Z
当中断产生时,按照上图所示的顺序进行压栈,同时栈指针SP--,即: R0, R1, R2, R3, R12, LR, PC,xPSR。
6 }# ]1 V, H: k1 `* K5 W
& Y# k( [/ D$ r- f7 C/ I" Z/ L
; ^3 n/ n' r& T: A/ }
(4@4@A7%5UQMKYCI4}FDAR4.png 4 C/ l0 S  S1 D4 z! Q' C9 t

& |- F/ N+ O( `8 l- z1 m
如上图所示,当产生异常时,如果call stack窗口显示不出来的话,只能根据core的寄存器手动回溯栈,以找到出错时的指针。根据ARM core的说明,SP+6,即红框的部分,为中断处理后LR和PC,据此可以追溯函数异常时的位置! , E7 x4 T3 O8 r5 X$ T/ h: x2 q1 d

# E% s8 j/ n) [' p7 _完整版请查看:附件) `5 \7 `3 Q8 S

  }% n5 ?* u7 }
) c: l5 [* v, `+ r, Y: c; n
5 z' E- b( j/ j& o% J
) m6 u# U* o0 C
" A0 k. z: o* z, b$ P9 q1 ~
/ I$ y+ M# L( ?* ?/ e( I8 Q. t

A case study of abnormal reset of STM32MCU.pdf

下载

394.97 KB, 下载次数: 0

赞 收藏 评论0 发布时间:2022-7-30 21:41

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版