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.

[参考译文] AM6442:将 UART 添加到 RPMSG 项目中断 RPMSG 和 DebugP_log()

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1065870/am6442-add-uart-to-rpmsg-project-breaks-rpmsg-and-debugp_log

部件号:AM6442
“线程:测试”中讨论的其它部件

我在 AM64442 (SK 和 EVM)上有一个使用 RPMSG 的 R5F 项目,该项目有效。  DebugP_log()正确记录到与 Linux 共享的内存中。  我可以在/sys/kernel/debug/remoteproc/remoteproc0/trace0中看到我的所有 DebugP_log()输出。  我可以使用 Linux 的 rpmsg_cha_simple 示例与 RPMSG 通信。

我修改 syscfg 文件以添加 UART。

DebugP_log()停止工作。

RPMSG 使用 rpmsg_cha_simple 返回错误进行测试,但未检测到通道。

对  Module_clockSetFrequency()的调用中向下跟踪到 ti_POWER_clock _config.c。 该代码使用下表和 UART 的条目。

如果我 没有初始化 UART 时钟,那么 RPMSG 和 DebugP_log()到 trace0的工作正常。

如果我确实初始化 UART 时钟,RPMSG 和 DebugP_log()到 trace0会立即停止工作。

作废 Module_clockSetFrequency (作废)

Int32_t 状态;
UINT32_t I = 0;

DebugP_log (“Module_clockSetFrequency ()-项\n”);
while (gSocModulesClockFrequency[I].moduleId!=SOC_MODULES _END)

DebugP_LOG (“Module_clockSetFrequency ()- SOC_moduleSetClockFrequency (%lu,%lu,%lu)”,
gSocModulesClockFrequency[I].moduleId,
gSocModulesClockFrequenc[I].clkId,
gSocModulesClockFrequenc[I].clkRate);

状态= SOC_moduleSetClockFrequency (
gSocModulesClockFrequency[I].moduleId,
gSocModulesClockFrequenc[I].clkId,
gSocModulesClockFrequenc[I].clkRate

);
DebugP_assertNoLog (状态= SystemP_Success);
I++;
}
}

SOC_ModuleClockFrequency gSocModulesClockFrequency []={

//{ TISCI_DEP_UART0, TISCI_DEP_UART0_FCLK_CLK, 960000},

{ SOC_MODULES _END,SOC_MODULES _END,SOC_MODULES _END },
};

???如何在同一程序中同时使用 UART 和已在运行的 RPMSG/CudgP_log()到 trace0??

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

    KCH,您好!

    要确认,R5内核或 Linux A53内核是否使用 UART?

    此致,

    尼克

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

    UART 由 R5F 内核用户。

    我有两个项目。

    第一个使用 RPMSG 和 DebugP_log()共享内存并正常工作。

    第二个使用 Matlab 和 UART,并且工作正常。

    尝试合并这两个项目会导致在执行任何 MATLAB 代码之前出现故障。

    故障发生在 SOC_moduleSetClockFrequency()调用期间。  在调用 Debug_log()之前,调用显示在 Linux 上的 trace0共享内存日志中。 呼叫后,Linux 上的 trace0日志中不再显示任何项目。

    我只能在应用程序完全启动后测试 RPMSG 代码,因此我无法肯定 RPMSG 被该调用杀死,但如果我注释掉 了 gSocModulesClockFrequency 中的初始化程序条目, 这会导致 while 循环不运行,RPMSG 工作正常。  如果我留在条目中,则使用 rpmsg_cha_simple 进行测试失败:

    root@am64xx-EVM:~# rpmsg_cha_simple -r 2.
    _rpmsg_chal_find_ctldev:找不到与 virtio0.rpmsg_chrdev.-1.14匹配的 rpmsg_Ctrl 设备
    无法创建端点设备:成功
    测试状态:失败

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

    您好,

    对延迟回复表示歉意。 自上一篇帖子以来是否有任何变化?

    此致,

    尼克

x 出现错误。请重试或与管理员联系。