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.

[参考译文] AM2634:如何为每个内核输出 UART 日志

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1390516/am2634-how-to-output-uart-log-for-each-core

器件型号:AM2634

工具与软件:

您好、TI 团队:

在示例代码中、R5F 0-0使用共享存储器输出 UART 日志记录。
我想创建一个信标来控制 UART、并让每个内核输出 UART 日志、而不是使用共享存储器。
我想减少核间通信。
请告诉我如何实现

环境:
CCS12.7.0
AM243x MCU+SDK 09.02.01.05
LP-AM2434

我该怎么办?

 .

非常感谢、期待您的答复。
此致、
Yoshiki Koide

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

    您好、Yoshiki、

    虽然最初是针对 R50进行配置、但我假设您要尝试使用 UART 为所有内核进行输出。  
    我相信这是可以做到的、请允许我在几个工作日内对此进行研究。

    此致、

    Vaibhav

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

    您好、Yoshiki、

    以下是我对 UART 动态分配的想法。

    因此,我对您用例的理解如下。

    您已进行了运行 IPC 的设置、假设内核为 R500、R501和 R511。 而通过一个 UART 实例、假设 UARTx 您希望在所有三个内核上执行 DebugP_Log ("sample")。 显然、这不能同时进行、而是一个接一个地进行。

    根据我的理解、我们假设 UART 已针对 R500进行配置、因此接下来会向 R500应用程序打印、但当涉及另一个内核的日志记录语句时、我们需要为该特定内核重新初始化 UART、并确保在不同内核的应用进行初始化之前先取消初始化。 因此、流程如下所示:

    R500:

    UART 打开并初始化完成

    记录已完成

    UART 解初始化并关闭

    R501:

    确保 UART 可自由使用、而不在其他任何地方进行初始化

    UART 打开并初始化

    记录已完成

    UART 解初始化并关闭

    这还将要求 R500使用 IPC Notify Sync All 机制与 R501通信、这意味着 R500将说:"R501我使用 UART 完成了、您可以继续使用它"。

    请告诉我、这是否可行。

    此致、

    Vaibhav  

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

    您好、Vaibhav
    我想从所有内核输出 UART。 请给我一些建议。

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

    您好、Vaibhav
    >"这还将要求 R500使用 IPC Notify Sync All 机制与 R501通信、这意味着 R500将说:"R501我使用 UART 完成了、您可以继续使用它"。

    您的想法不会减少内核间通信。

    我想从所有内核输出 UART。
    你还有其他想法吗?

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

    您好、Yoshiki、

    我知道使用 IPC Notify Sync All 不会减少过程间通信、但这只是其中一种方法。

    使用信标可能是另一种情况。 但我还没有尝试过这个或检查它的可能性。

    请给我一些时间来运行几个实验、并检查是否可以使用信标实现、因为您不想使用共享存储器。

    此致、

    Vaibhav

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

    感谢您的回答。

    >"请给我一些时间来运行几个实验、并检查是否可以使用信标执行此操作、因为您不想使用共享内存。"
    有。 我在等什么。 请执行。

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

    您好、Yoshiki、

    请允许我在几个工作日内重新了解此内容。

    此致、

    Vaibhav

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

    尊敬的 Vaibhav:

    您是否可以更新当前状态?

    此致、

    Kasai

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

    您好、Tetsuro

    因为我当时正在进行重要的调试、因此一周后发布了回复。

    我建议您查看: C:\ti\mcu_plus_sdk_am243x_09_02_00_50\source\kernel\dpl\SemaphoreP.h

    您是否已使用上述任何 API 自行实现?

    在以下文件中可以找到有关如何构造和使用信标的示例: C:\ti\mcu_plus_sdk_am243x_09_02_00_50\examples\drivers\uart\uart_echo_callback\uart_echo_callback.c

    注意:UART 回调也是一个示例、因此您对信标的使用也有很好的了解。

    此致、

    Vaibhav

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

    您好、 Vaibhav
    感谢您的答复。

    我想使用 IPC Notify 回波样本来检查。
    当我将 syscfg 配置为在每个内核上使用 UART 时、我会收到冲突错误。

    在 R5FSS0-0和 R5FSS0-1之间共享 UART0_RXD/B10和 UART0_TXD/B11会导致冲突错误。 下图 PAT 1。
    如果它们不是共享的、则不会产生错误。 患者2。


    如果是 PAT 2. 我认为 R5FSS0-1不会输出 UART 日志。
    如果是 PAT 1。 我认为 UART 日志将在 R5FSS0-1上输出。

    如何解决此问题? 请告诉我解决方案。 幻灯片。

    此致。


    R5FSS 0-0

    R5FSS 0-1

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

    您好、Yoshiki、

    让我首先复制您的设置。

    我将运行 IPC Notify 以检查 UART 日志的行为。

    此致、

    Vaibhav

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

    您好、Yoshiki、

    您只需继续添加 UART1、因为 UART0已针对 R50_0进行了配置、因此无法使用。

    此外、您能否说明您将如何指定用于 x、y 或 z 内核的 DebugP_LOG ("some print statement")?

    因为、请查看下面随附的图像。

    所有应用中的一个通用文件是 ipc_rpmsg_echo.c、由 R50_0、R50_1、R51_0和 R51_1使用。

    那么、关于这一点、您如何区分它们?

    仅供参考、我刚将系统 FreeRTOS nortos 示例从 AM243x MCU 加 SDK 导入到 CCS 中。 它的目录为: C:\ti\mcu_plus_sdk_am243x_09_02_00_50\examples\drivers\ipc\ipc_rpmsg_echo\am243x-lp\system_freertos_nortos

    此致、

    Vaibhav

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

    您好、Vaibhav、

    我发现很难使用 IPC 环境、因此我创建了一个空工程并将 UART 添加到 syscfg 中。 未使用 IPC。
    该内核配置为 R5F 0-0、0-1、1-0、1-1、M4F 0-0。
    我需要在所有内核上输出 UART 日志。

    为所有内核指定 UART0将导致冲突错误。

    "您只需继续并添加 UART1、因为 UART0已针对 R50_0进行了配置、因此无法使用。"
    >为避免冲突错误,将 R5F 0-1更改为 UART1。

    图 1.

    我查看了 AM243x LaunchPad 开发套件用户指南。
    我想只有 USART0输出日志。
    根据图1中的设置、我认为 R5F 0-1、1-0、1-1和 M4F 0-0不会记录输出。

    我理解 SemaphoreP_pend ()和 SemaphoreP_POST ()的用法。
    使用图 1:每个内核控制一个不同的 UART、因此无需信标。

    我想将输出记录到 UART0中。
    我希望所有内核共享 UART0、因此我使用 SemaphoreP_pend ()、SemaphoreP_POST ()。
    如何设置 syscfg?

    "那么、在这一点上、您将如何区分它们?"
    我想这是我的同一个问题。
    我想在所有内核上使用 UART0、
    我如何区分它们?

    此致、

    Yoshiki

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

    您好、Yoshiki、

    请允许我花点时间通读、您可以在几个工作日内得到回复。

    此致、

    Vaibhav