主题中讨论的其他器件:AM6422、 UNIFLASH
工具与软件:
您好、TI 支持团队。
请告诉我关于重新启动 AM6422的信息。
我将使用 CA53、CR5和 PRU 固件。
请告诉我如何在每个 CPU 固件运行时重置和重新启动。 重新启动后、我要从 CR5 SBL 启动。
请告诉我 SDK 等中是否有任何示例代码
此致、
今泉清正。
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 支持团队。
请告诉我关于重新启动 AM6422的信息。
我将使用 CA53、CR5和 PRU 固件。
请告诉我如何在每个 CPU 固件运行时重置和重新启动。 重新启动后、我要从 CR5 SBL 启动。
请告诉我 SDK 等中是否有任何示例代码
此致、
今泉清正。
你好 Tushar Thakur。
感谢您的答复。
用例如下:
当主电源打开时、SBL 将运行、然后是 CR5 (包括 PRU)和 CA53应用程序固件。
例如、用户将按下按钮(GPIO)、CA53将解释按钮按压操作、CA53应用程序固件将复位每个 CPU、然后系统将从 SBL 重新启动。
我的意思是、在其他内核同时运行的情况下、通过在一个内核(CA53)上运行的固件对所有 SoC 进行复位。
请告诉我使用 CA53应用程序重置和重新启动每个 CPU (CR5、PRU、CA53)的过程。
此致、
今泉清正。
您好、今泉清正、
AM64x SoC 不支持每次 CPU 复位。
在 SoC 上有两个复位。 一个是 WarmReset 或 POR。
热复位可通过 SW 或 HW 引脚实现。
POR 可通过 HW 引脚执行。
在每次复位中、引导从 RBL→SBL→Application 开始。
区别在于每个复位类型保存 MMR 寄存器内容。
AM64X 器件支持重置隔离特性。 使用此功能、您只能将 M4F 内核(MCU 域) 与复位隔离。
例如、当按下 SW 时、在 M4F 内核中断中、您只能复位主域内核。 主圆顶内核为 A53、R5F。
复位效应不会通过 M4F 内核传播
此致、
Anil。
您好、Swargam Anil、
感谢您的答复。
第1号
POR 能否不仅由硬件开关执行、还能通过将"0110"写入 CTRLMMR_MCU_RST_CTRL 寄存器的 SW_MAIN_POR [4:7]字段来执行?
第2号
在复位机制方面、写入 CTRLMMR_MCU_RST_CTRL 是否会生成 M4F 内核中断并复位主域?
第3号
此外、是否可以将"0110"写入 CA53中断处理程序中 CTRLMMR_MCU_RST_CTRL 的 SW_MAIN_POR 或 SW_MAIN_WARMRST 以执行软件复位?
此致。
今泉清正。
您好、今泉清正、
有关重置主题的更多详细信息、请查看下面的常见问题解答。
此常见问题解答可消除您的所有疑问。
此致、
Anil。
您好、Swargam Anil。
感谢您的答复。
我选中了0636.RESET_Analysis.xlsx。
——
如何确定当前固件是处于通用模式还是隔离模式?
换而言之、如何确定我的固件是否将 M4F 内核与 MAIN 域分开?
——
在主 Dominin 软件 POR 的外设状态中、它说
>在常规模式下:无重置效果
这是什么意思? 是否意味着所有外设的寄存器值均保留?
——
软件 POR 注释中写入了以下内容:
>1. 在通用模式下、软件 POR 操作将不起作用、这意味着当用户在非隔离模式下配置 M4F 内核时、用户无法进行 Softwarewatre POR。 仅当 M4F 内核处于隔离模式时、用户才能进行软件 POR
目前、将"0110"写入 CTRLMMR_MCU_RST_CTRL 中的 SW_MAIN_POR [4:7]会复位 M4F 内核、但这是因为 M4F 处于隔离模式吗?
此致、
今泉清正。
您好、今泉清正、
所有 MCU+SDK 示例都没有隔离 MCU 内核的功能。
如果 您想将 M4F 内核与 主 域隔离、请参阅下面的示例和章节。
即使您 在通用模式下控制 CTRL MMR 寄存器的 POR 位(不将 MCU 内核与主域隔离)、POR 也不起作用。
当您 将 MCU 内核与主域隔离时、POR 将正常工作。
示例代码路径: \ti\mcu_plus_sdk_am64x_10_00_00_20\examples\drivers\safety\reset_isolation。
此致、
Anil。
您好、Swargam Anil。
感谢您的答复。
>1. 在通用模式下、软件 POR 操作将不起作用、这意味着当用户在非隔离模式下配置 M4F 内核时、用户无法进行 Softwarewatre POR。 仅当 M4F 内核处于隔离模式时、用户才能进行软件 POR
>所有 MCU+SDK 示例都没有隔离 MCU 核心的功能。
我注意到 POR 有一些奇怪的事情。
在以下示例工程中、我创建了代码以将"0110"写入 CTRLMMR_RST_CTRL 的 SW_MAIN_POR 寄存器。
gpio_input_interrupt_am64x-evm_r5fss0-0_nortos_ti-arm-clang.zip
加载后在 XDS110上运行、不会发生 POR 复位。
我认为是正确的。
但是、当使用 OSPI 闪存从 ROM 引导时、会发生 POR 复位。
根据目前介绍、M4F 未在示例项目中分离、因此 POR 不应起作用。
为什么从 ROM 引导时 POR 可以工作?
此致、
Kiyomasa Imaizumi.e2e.ti.com/.../1212.gpio_5F00_input_5F00_interrupt_5F00_am64x_2D00_evm_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang.zip
您好、今泉清正、
请看下面的图片。
根据 TRM、当 M4F 内核配置为通用内核时、用户不能使用 SW POR 来进行 POR、而用户应使用 MCU_PORz 引脚进行 SOC 复位、建议这样做。
此软件 POR 在上述当前情况下正常运行、我在其他 硬件中已看到、触发软件 POR 后、引导不会启动并在 ROM 引导加载程序中停止。 因此、请勿在通用模式下使用 SW POR。

此致、
Anil。
您好、 今泉清正、
[报价 userid="574260" url="~/support/processors-group/processors/f/processors-forum/1428541/tmds64evm-reset-and-reboot-the-am64/5527900 #5527900"]在上图中、有三种 M4F 状态。
案例1:M4FSS 作为"独立"安全处理器
案例2:M4FSS 作为"监控"安全处理器
案例3:M4FSS 作为通用处理器或未使用。
在为我自己创建的 CA53或 CR5编写固件时、如何确定是哪个 M4F 用例?
[报价]所有 MCU+SDK 示例都没有隔离 MCU 内核的特性。
如果您想将 M4F 内核与主 域隔离、请参阅以下示例和章节。
示例代码路径: \ti\mcu_plus_sdk_am64x_10_00_00_20\examples\drivers\safety\reset_isolation。
如果您查看复位隔离示例、可以看到一些标志来禁用 MAIn2MCU 和 MCU2MAIn PSC 桥接器。
如果启用了这些电桥并且设置了复位隔离标志、则 M4F 可以配置为 M4F 监控模式。
如果这些电桥被禁用并且 复位隔离标志被置位、则 M4F 可以配置为 M4F 作为安全处理器。
如果这些桥接器已启用并且未设置复位隔离标志、则 M4F 可以配置为 M4F 通用模式。
请查看流程图和示例以及 MCU+SDK 文档以启用复位隔离步骤。




谢谢。 我在等你的答复。
关于上述示例项目的第一个问题、您能否解释一下为何从 RAM 引导时不会发生 POR 复位、而是在使用 OSPI 闪存从 ROM 引导时确实会发生 POR 复位?[/QUOT]有关上述问题、请查看下面的答案。
[报价 userid="525901" url="~/support/processors-group/processors/f/processors-forum/1428541/tmds64evm-reset-and-reboot-the-am64/5507970 #5507970"]请看下面的图片。
根据 TRM、当 M4F 内核配置为通用内核时、用户不能使用 SW POR 来进行 POR、而用户应使用 MCU_PORz 引脚进行 SOC 复位、建议这样做。
此软件 POR 在上述当前情况下正常运行、我在其他 硬件中已看到、触发软件 POR 后、引导不会启动并在 ROM 引导加载程序中停止。 因此、请勿在通用模式下使用 SW POR。
[报价]此致、
Anil。
您好、Swargam Anil。
感谢您的答复。
我在下面构建了示例工程并获得了 reset_isolation_system.appimage.hs_fs。
C:\ti\mcu_plus_sdk_am64x_09_01_00_41\examples\drivers\safety\reset_isolation
写入 TMDS64EVM 的 OSPI 闪存并为其上电后、会显示以下调试输出:
——
DMSC 固件版本9.1.6--v09.01.06 (Kool Koala)
DMSC 固件版本0x9
DMSC ABI 修订版3.1
某些测试失败!!
——
如果多次打开和关闭电源、应用程序可能会启动。
我使用以下器件作为我的 SBL OSPI:
sbl_prebuilt/am64x-evm/sbl_dfu_uniflash.release.hs_fs.tiimage
我是否缺少 SBL OSPI 中的某些设置?
请告诉我如何解决此问题。
最棒的餐厅
今泉清正。
您好、Swargam Anil。
感谢您的答复。
我使用的是 sbl_ospi.debug.hs_fs.tiimage。
我正在附加一个应用程序映像。
当我写入 OSPI 闪存并加电时、收到错误消息"某些测试已失败!!"
但是、当我在 EVM 上按下 SW7时、它会按如下所示启动。
——CR5监护仪——
DMSC 固件版本9.1.6--v09.01.06 (Kool Koala)
DMSC 固件版本0x9
DMSC ABI 修订版3.1
[bootloader_profile]引导介质:NOR SPI 闪存
[bootloader_profile]引导介质时钟:166.667 MHz
[bootloader_profile]引导映像大小:38 KB
[bootloader_profile] Cores present:
m4f0-0
r5f0-0
[引导加载程序配置文件] SYSFW init:12170uS
[引导加载程序配置文件] System_init:349499us
[引导加载程序配置文件] Drivers_open:321us
[引导加载程序配置文件] Board_driversOpen:23228us
[bootloader profile] Sciclient 获取版本: 10033us
[引导加载程序配置文件] CPU 负载:49515us
[bootloader_profile] SBL 总耗时:444772us
图像加载完成、切换到应用程序...
运行 CPU m4f0-0至400000000 Hz。
运行 CPU r5f0-0至800000000 Hz。
启动 R5
按下并释放 EVM 上的 SW5按钮以从 SW...触发热复位
按下并释放 EVM 上的 SW4按钮、以从硬件触发热复位。
我正在运行(R5)!:- 0
我正在运行(R5)!:- 1.
---
-- M4F 监视器---
我正在运行(M4)!!:- 0
我正在跑步(M4)!!:- 1.
我正在跑步(M4)!!:- 2.
我正在跑步(M4)!!:- 3.
我正在跑步(M4)!!:- 4.
---
还有一个问题。
当我尝试在这个状态下把目标从 CCS 连接到 M4F 时、会出现一个错误。

请告诉我如何解决这个问题。
e2e.ti.com/.../resetisolation.zip
此致、
今泉清正。
其他说明:
以下代码可在 reset_isolation_mcu_domain.c 中找到
---
{
Hwip_Params resetHwiParams;
Hwip_Object resetObject;
Hwip_Params_init (&resetHwiParams);
resetHwiParams.intNum = 25;
resetHwiParams.callback = resetReqIsr;
resetHwiParams.isPulse = 0;
Hwip_construct (&resetObject、&resetHwiParams);
}
---
由于 intNum=25是 MCU_UART1_USART_IRQ_0、因此我认为这是 UART1中断。
为什么在 TMDS64EVM 上按下 SW4会导致在 M4F 上出现 resetReqIsr?
此致、
今泉清正。
您好、 今泉清正、
[报价 userid="574260" url="~/support/processors-group/processors/f/processors-forum/1428541/tmds64evm-reset-and-reboot-the-am64/5538830 #5538830"]当我将 RESET_ISOLATION_MCU_DOMAIN.c 中的 debugIsolationEnable 从1更改为0时、我能够从 CCS 连接到 M4F。
如果 debugIsolationEnable=1、这是否意味着我无法从 XDS110连接?
[报价]要将调试器连接到 M4F 内核、可执行上述步骤、且您的理解是正确的。
[报价 userid="574260" url="~/support/processors-group/processors/f/processors-forum/1428541/tmds64evm-reset-and-reboot-the-am64/5539143 #5539143"]以下代码可在 reset_isolation_mcu_domain.c 中找到
---
{
Hwip_Params resetHwiParams;
Hwip_Object resetObject;
Hwip_Params_init (&resetHwiParams);
resetHwiParams.intNum = 25;
resetHwiParams.callback = resetReqIsr;
resetHwiParams.isPulse = 0;
Hwip_construct (&resetObject、&resetHwiParams);
}
---
由于 intNum=25是 MCU_UART1_USART_IRQ_0、因此我认为这是 UART1中断。
为什么在 TMDS64EVM 上按下 SW4会导致在 M4F 上出现 resetReqIsr?
以上查询是合理的。 实际上你需要检查 第9个 中断编号而不是25。 因为 M4F 内核中断从16个开始。 这些中断是内部的且特定于 SOC。 因此、用户无法使用它们。
要将中断路由到 M4F 内核、您需要添加偏移值、即16 + M4F 内核中断编号。
现在、我们将 warmReset 中断路由到 M4F 内核。
在本例中、warmReset 中断数为9、偏移值为16、因此总值为25。

此致、
Anil。