工具与软件:
您好、TI 团队:
在示例代码中、R5F 0-0使用共享存储器输出 UART 日志记录。
我想创建一个信标来控制 UART、并让每个内核输出 UART 日志、而不是使用共享存储器。
我想减少核间通信。
请告诉我如何实现
环境:
CCS12.7.0
AM243x MCU+SDK 09.02.01.05
LP-AM2434
我该怎么办?
.
非常感谢、期待您的答复。
此致、
Yoshiki Koide
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 团队:
在示例代码中、R5F 0-0使用共享存储器输出 UART 日志记录。
我想创建一个信标来控制 UART、并让每个内核输出 UART 日志、而不是使用共享存储器。
我想减少核间通信。
请告诉我如何实现
环境:
CCS12.7.0
AM243x MCU+SDK 09.02.01.05
LP-AM2434
我该怎么办?
.
非常感谢、期待您的答复。
此致、
Yoshiki Koide
您好、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
您好、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、
您只需继续添加 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