工具与软件:
您好、TI 专家
想问一下、芯片重启后、怎么能得到重启的正确原因?
我想知道如何触发软件重启并正确确定重启的原因吗?
我还想知道、如果它是看门狗重新启动、如何指示重新启动的原因、它能否与软件重新启动区分开来?
我希望收到您的回答
BR、
Huang
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
您好、TI 专家
想问一下、芯片重启后、怎么能得到重启的正确原因?
我想知道如何触发软件重启并正确确定重启的原因吗?
我还想知道、如果它是看门狗重新启动、如何指示重新启动的原因、它能否与软件重新启动区分开来?
我希望收到您的回答
BR、
Huang
您好、Qingzhe:
离线排列后、我已经为您提供了一些指南、我们可以从以下寄存器中找到复位原因:WKUP_CTRL_MMR1_RST_SRC;

我还向您提供此信息、以便通过软件对器件进行复位。
我想您的真实问题是、 当您触发软件复位时、没有记录 WKUP_CTRL_MMR1_RST_SRC、对吗? 该寄存器将始终为0。
SW 复位或 PMIC WD 复位 您需要知道如何记录软件复位。
尊敬的 Anil:
我已澄清客户向您提出的问题、请帮助您进行检查。
BR、
Biao
大家好、Anil 和 Biao
我进行了一个实验,我调用 Scicontent_pmDeviceReset()每30秒,以执行软件热复位,而车载电脑未通电。 复位后、我通过 SOC_getWarmResetCauseMainDomain()读取复位原因。 但是、每次软件复位后、读取重新启动原因显示不同的情况、如下所示。 有时会指示复位原因是冷复位、有时则指示复位原因是软件复位。 这是什么原因呢?

BR、
Huang
您好、黄
根据上述结果、您的理解是正确的。
SOC 有时会经历 POR 和 WarmReset。
如果上面的寄存器值为零、那么毫无疑问、您的应用只是执行 POR、并且还有其他可能。
除 POR 之外、该寄存器永远不会被清除。
查看此 POR 是否来自 PMIC 或 HW MCU_PORz 引脚。
以下链接有助于进一步调试复位问题、并根据调试指南按照以下步骤操作。
此致、
Anil。
您好、Anil
我按照您提供的指导进行了操作、并测量了 MCU_PORZ 引脚。 正如您所说的、当 MCU_PORZ 引脚进行高电平到低电平转换时、I READ 的寄存器值为0。 但是、当没有高电平到低电平的转换时、进行复位 I READ 的原因是软件热复位。 这似乎符合您的预期、但我有一个问题:MCU_PORZ 引脚为什么有时会进行高电平和低电平转换、有时不会进行? 这是正常现象吗?
BR、
Huang
您好、 黄
这是正常现象吗?
这种行为不正常。
MCU_PORz 引脚是 SoC 的输入、SOC 无法驱动此引脚上的任何信号。
如果该引脚从高电平变为低电平或从低电平变为高电平、请查看您的系统、该 引脚由任何其他外部器件控制、例如 PMIC 或任何驱动该引脚的外部 SOC/微控制器/FPGA。 除此之外、没有 SOC 可以驱动该信号。
而且、我希望您也仅针对下面突出显示的引脚确认了上述结果。

此致、
Anil。
您好、Anil
我已确认没有针对此引脚的其他控制、它只连接到 PMIC 的 NRSTOUT。
我进行了一些其他测试、但不是调用 Scicontent_pmDeviceReset ()来触发重启、而是在 SOC 端输入 reboot 命令以重启它、然后读取 MCU_CTRL_MMR0_SSTSRC 寄存器的值。 我执行了三个重新启动操作、其中一个导致0x00010000、两个导致0x0000000。 目前还不清楚是什么原因造成的。希望能提供一些测试建议来找出问题。
BR、
Huang
您好、黄
如果该 MCU_CTRL_MMR0_RSTSRC 内容为零、并且 MCU_PORz 输入从高电平变为低电平、则 SOC 将经历 POR、这时没有其他可能。
是否可以通过 MCU_PORz 引脚断开 PMIC、并且我假设 MCU_PORz 上的信号因 PMIC 而发生变化。
在从 MCU_PORz 输入断开 PMIC 后、确保默认情况下我们需要在此引脚上驱动为高电平。

此致、
Anil。