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.

[参考译文] DRA829J:如何在可邀请的双 R5 内核上执行硬件和软件复位

Guru**** 2696315 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1591830/dra829j-how-to-perform-hardware-and-software-resets-on-invididual-r5-cores

器件型号: DRA829J

你好。

如何 复位 J721E-EVM 上的各个 R5 内核? 我已经尝试过:

Sciclient_pmDeviceReset(SCICLIENT_SERVICE_WAIT_FOREVER);

但它会复位整个 SoC。

然后我尝试了:

Sciclient_pmDomainReset(domainGroup, SCICLIENT_SERVICE_WAIT_FOREVER);

域组 0→复位整个 SoC
域组 1→冻结操作系统
域组 2→没有任何反应
域组 3→没有任何反应
域组 4→无任何反应
域组 5→无任何反应
域组 6→没有任何反应

运行代码的器件 MCU2_0

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您能否查看随附的代码片段、让我们知道它是否解决了问题?

    SciApp_printf("R5 Core Rest Check\n\n");
    
    int32_t status = CSL_PASS;
    
    uint32_t resetBit = 1;
    status = Sciclient_pmSetModuleRst(TISCI_DEV_R5FSS0_CORE1,
    resetBit,
    SCICLIENT_SERVICE_WAIT_FOREVER);
    if (status == CSL_PASS)
    SciApp_printf("R5 mcu2_1 Reset Success\n\n");

    此致、

    Karthik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     TISCI_DEV_R5FSS0_CORE1 是否映射到 MCU2_0 或 MCU2_1 ? 我需要复位 2_0。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    TISCI_DEV_R5FSS0_CORE1 映射到 MCU2_1 内核。 对于 MCU2_0、请使用 TISCI_DEV_R5FSS0_CORE0。

    此致、

    Karthik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好 该片段会导致 MCU 冻结。 可能是因为代码在 MCU2_0 上运行? 请注意、这是一个自复位。 有其他选择吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我没有遇到任何问题。 我可以使用您提供的代码片段从 MCU2_1 内核复位 MCU2_0 内核。 您能否简单地解释一下您是如何执行验证的?

    此致、

    Karthik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    哦、好的、也许我的问题被误解了。 我们的产品有自复位要求、因此我需要从自身、而不是从另一个内核硬复位 MCU2_0。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

     您能否简单地解释一下您是如何执行验证的?

    此致、

    Karthik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    没问题。 我使用的是 J721E-EVM 板。 我在 UART1 上运行了一个类似 shell 的应用程序、它提供一组命令、例如 RESET。 我使用了您发送的代码片段(以及我的第一条消息中介绍的其他变体)填充了 RESET 命令命令、预期是 MCU 和我的应用程序复位、但相反、应用程序会冻结、我在 UART 上不再有活动。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我将对此进行更多的研究、并返回给您。

    此致、

    Karthik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    MCU2_0 无法直接硬复位自身。 它可以请求复位、但实际复位始终由 DM 执行。 没有一个 API 可以在内核上本地执行复位而不通过 DM。

    此致、

    Karthik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、感谢您的答复。 可以 通过 DMSC 发出复位请求来进行复位。 这样做的方法是什么? 例如、是否有任何 API、或者我们是否必须通过 RPMsg 自行实施逻辑?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    MCU2_0 无法与 DMSC 直接通信。 来自 MCU2_0 或来自任何主域的任何 TISCI (DMSC) 请求都必须通过 MCU1_0 进行路由。 这包括电源、时钟和复位请求。 因此、如果需要复位 MCU2_0、它必须将请求转发到 MCU1_0。 您能尝试使用以下 API 来复位 MCU2_0 内核吗?

    Sciclient_pmSetModuleRst_flags (TISCI_DEV_R5FSS0_CORE0、1、0、SCICLIENT_SERVICE_WAIT_FOREVER);//将复位置为有效
    Sciclient_pmSetModuleRst_flags (TISCI_DEV_R5FSS0_CORE0、0、SCICLIENT_SERVICE_WAIT_FOREVER);//将复位置为无效

    此致、

    Karthik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、我做到了。