Infineon TC297 reset 内容整理

Infineon TC297 reset 内容整理

SCU、RCU、SMU

	System Control Unit (SCU)
	Reset Control Unit (RCU)
	Safety Management Unit (SMU)

程序复位原因

	读取RCU的寄存器RSTSTAT(Reset Status Register), 根据寄存器的值确认产生Reset的原因

在这里插入图片描述
例如,我们读到了寄存器的bit3-SMU为1,SMU为1既The last reset was requested by this reset trigger。

进一步查询复位原因

需要关注的几个寄存器

	AG0-AG6	:  Alarm Group 0 Status - Alarm Group 6 Status
	AGnCFx (n=0-6, x=0-2) :  Alarm configuration

需要关注的概念

	Alarm Signals :Alarm Signals分为group0到group6共7个组,每个组的bit为31-0共32bits, 每个bit对应一个Alarm Signals。
	每个Alarm Signals的配置寄存器有0、1、2三个,既AGnCFx (n=0-6, x=0-2)中的x,一共有n组,n=0-6.
	每个Alarm Signals有对应的Alarm Action Configuration Codes,
	Code = SMU_AG<n>CF2. SMU_AG<n>CF1. SMU_AG<n>CF0, n=0...6。

在这里插入图片描述
能直接引起reset的有0x5(SMU_NMI)和 0x6(SMU_RESET).

引起SMU是复位源的原因

	这众多Alarm Signals中,哪些或者哪个Signals才是引起reset的原因,首先检查AGnCFx的配置,看一看哪些Alarm Signals的code被配置为0x5或0x6的值。
	根据SMU寄存器的基地址及寄存器地址偏移,确定AGnCFx的位置,如下图

在这里插入图片描述
AG2CF2 - AG2CF1 - AG2CF0 —> 0x20000000 - 0x20000000 - 0x00000000
即Group2 的bit29对应的Alarm Signals的code 为 110,即0x6
group2的bit9对应的Alarm Signals为 SMU-Alarm: Timer time-out (Safety Mechanism: Recovery Timer 0)
AG3CF2 - AG3CF1 - AG3CF0 —> 0x001E0000 - 0x00000000 - 0x001E0000
bit20 code = 101 SCU/WDTCPU2 Alarm: CPU2 watchdog time-out
bit19 code = 101 SCU/WDTCPU1 Alarm: CPU1 watchdog time-out
bit18 code = 101 SCU/WDTCPU0 Alarm: CPU0 watchdog time-out
bit17 code = 101 SCU/WDTS Alarm: Safety Watchdog time-out
其它组的寄存器值都为0
如果程序只使用了CPU0,并且只配置了Safety WD, 那么引起复位的复位原因有Safety Watchdog time-out或Timer0 timeout。最终的原因就是因为没有及时喂狗,导致的程序复位。
至于为什么没能及时喂狗,需要针对程序继续查询。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值