NXP MCU 技术论坛
直播中

李莉

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

S32K344死机无限复位怎么解决?

问题描述:
情况一:设置操作MC_RGM寄存器destructive escalation阈值为15,直接写寄存器触发destructive reset,后面死循环代码,触发之后调试状态卡死,退出调试后,芯片无限复位;
情况二:直接调用MCU模块函数,默认原始配置,其中MCU初始化函数中未注意到MCU_PRECOMPILE_SUPPORT开关需要开启,入参传入空指针,之后调用Mcu_SetMode(McuModeSettingConf_0)函数,入参值为0,注意到该函数中仍然触发复位事件,此时配置中destructive escalation阈值为0,后面分析发现,初始化时钟开关忘记开启,应该代码进入死循环,退出调试后,芯片产生无限复位,该段代码实现如下:
Mcu_Init(NULL_PTR);
Mcu_InitClock(McuClockSettingConfig_0);
While(MCU_PLL_LOCKED != Mcu_GetPllStatus())
{};
Mcu_DistributePllClock();
Mcu_SetMode(McuModeSettingConf_0);
现象:芯片重新上电后产生无限复位,复位管脚低电平时间为50us,高电平时间为6.8ms
问题一:是否以上操作触发了芯片的功能保护?
问题二:假如destructive reset超过设定阈值,会造成无限复位吗?查资料该情况下会是芯片处于DEST0阶段,但需重新上电
问题三:该故障是否可以恢复?有什么手段可以修复吗?

更多回帖

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