您好、TI 专家!
我想从软件重置 SOC。 我该怎么做?
POR (上电复位)和热复位之间有何区别?
此常见问题解答主要介绍了如何复位 SOC。 哪些寄存器用于对 SOC 进行复位?
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 专家!
我想从软件重置 SOC。 我该怎么做?
POR (上电复位)和热复位之间有何区别?
此常见问题解答主要介绍了如何复位 SOC。 哪些寄存器用于对 SOC 进行复位?
AM64X 提供不同类型的复位 :
复位有两种类型:热复位和上电复位(PORz)。 当器件进行热复位时、一些 MMR 寄存器值和调试逻辑能够在复位后保留其状态和值。 另一方面、PORz 复位将重置 SoC 中的所有组件、并使器件进入已知默认状态。
两个复位之间没有其他区别、并且两种情况下的引导条目是相同的。即
,执行 SOC 复位后,热复位或 POR 引导进入
复位-> ROM 引导加载程序-> SBL ->应用程序
请浏览章节 5.3.2复位源 以了解有关不同类型的重置资源的更多详细信息。
如何在 AM64X 中进行整个 SOC 复位?
用户不需要担心如何控制哪些 CTRL_MMR 寄存器来进行 SOC 复位。
AM64X 有一个 DMSC 内核、通常能够处理器件的复位。
因此、用户只需调用以下函数即可使 SOC 处于静止状态。
Sciclient_pmDeviceReset()。
有关 API 详细信息、请访问以下链接。
通常、有两个寄存器使 SOC 复位
调用 Sciclient_pmDeviceReset()函数后,哪些寄存器会受到影响?
在调用 Sciclient_pmDeviceReset() 就函数而言、我们使用 SYSFW 软件中的 RST_CTRL_SW_MAIN_WARMR (0x06)值来设置 CTRL_MMR0寄存器、此值将针对主域和 MCU 域进行复位。
它只执行 SW_MAIN_WARMRESET 。 如果您尚未将 MCU 域配置为安全域、则此热复位会同时影响 MCU 和主域。
目前在 SYSFW 中、我们会检查 MCU 域是否已隔离;如果已隔离、 不 隔离、我们使用 CTRLMMR_MCU_RST_CTRL 如果 MCU 域被隔离,我们将使用 CTRLMMR_RST_CTRL 寄存器。
请查看 SYSFW 中有关图像的更多详细信息。
Magicword 是一个非零值、这意味着 MCU 域与主域隔离。
因此、基于上述详细信息、当您致电 Sciclient_pmDeviceReset () 功能、
情形1: MCU 域未与主域隔离。
致电 Sciclient_pmDeviceReset () soc 函数在所有 muc+sdk 示例的帮助下重置器件、 CTRLMMR_MCU_RST_CTRL 寄存器 复位会影响主域和 MCU 域。
案例2 : MCU 域与主域隔离。
当您运行以下示例 SOC 时、借助 CTRLMMR_RST_CTRL 寄存器和 复位仅影响主域和 MCU 域继续运行。
C:\ti\mcu_plus_sdk_am64x_08_06_00_43\examples\drivers\safet\reset_isolation
主域:A53和 R5F 内核
MCU 域:M4F 内核