工具/软件:
您好:
我使用 mcu_plus_sdk_am64x_10_01_00_32来尝试 RPMsg 示例、但在调试代码时、编译器块如以下屏幕截图所示。 我只在ipc_rpmsg_echo_main
函数中包含调试日志、它并不能正确显示所有调试。
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.
工具/软件:
您好:
我使用 mcu_plus_sdk_am64x_10_01_00_32来尝试 RPMsg 示例、但在调试代码时、编译器块如以下屏幕截图所示。 我只在ipc_rpmsg_echo_main
函数中包含调试日志、它并不能正确显示所有调试。
大家好、在 AM64x MCU+ SDK 用户指南(AM64x MCU+ SDK:IPC RP Message Echo)中、我们可以提供:
因此、请仔细检查您的导入和编译系统工程、该工程将导入和编译其他依赖工程。 此外、如果您将调试器"暂停"到它停止的位置? 悬挂在哪里? IPCRP Message Echo 项目是否已更改? 如果是、已进行了哪些更改? 还是 OOB 示例演示?
谢谢您、
Paula
尊敬的 Elbon、您是否可以查看该文章中的步骤: (+) AM6442:ipc_notify_echo -处理器论坛-处理器- TI E2E 支持论坛 ?
请告诉我、如果您在遵循它们后仍然遇到问题。
谢谢您、
Paula
嗨 Elbon、我看、我的错、我以为您在尝试 AM64x MCU+ SDK:IPC RP Message Echo、实际上您在尝试 AM64x MCU+ SDK:IPC RP Message Linux Echo
我们来回顾一下。 为了使用 IPC RP Message Linux 示例、我猜您可能运行了 Linux (很可能是 SD 卡)。 如果是、您能否检查以下命令:
如果您没有看到错误和状态为"正在运行"、我们可以添加一些调试。 请检查以下学院链接、在 RTOS 端、主要思路是添加一个 while ()循环、其中包含一个有助于停止代码的变量、并逐步执行:
与 Linux 一起调试远程内核: https://dev.ti.com/tirex/explore/node?node=A__AU9Punu4yTQu9hRP62aoug__AM64-ACADEMY__WI1KRXP__LATEST
通过 CCS 调试远程内核: https://dev.ti.com/tirex/explore/node?node=A__AZVLTFgnCWyMV5cDwLf4gg__AM64-ACADEMY__WI1KRXP__LATEST
其他学院链接 可能会帮助您:
正在引导远程核心: https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__AdAyuKWUWVV5j4wBc7C6XA__AM64-ACADEMY__WI1KRXP__LATEST
IPC 示例: https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__Ab31zORiXVgIbeWGmbktOA__AM64-ACADEMY__WI1KRXP__LATEST
处理器间通信(IPC): https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__ASn.0Gvx.CK7j7a0EWKc.w__AM64-ACADEMY__WI1KRXP__LATEST
谢谢您、
Paula
e2e.ti.com/.../7103.Video.MP4HiPaula,
很抱歉晚回复。 我向您发送我的屏幕录制内容、以帮助您了解我的意思。
"我知道,就一会儿。" 在 CCS 中、您应该使用"加载符号"而不是"加载程序"
从 Academy 中、我们可提供:
通过 CCS 调试远程内核: dev.ti.com/.../node
"将 CCS 连接到远程内核后、不要复位远程内核! 而是选择 Load > Load Symbols 、然后选择当前在远程核心上运行的固件二进制文件。
您不希望重置远程内核、因为如果 RPMsg 代码在远程内核上运行、则它将等待 Linux 重新提供 Linux 在首次初始化内核时写入资源表的信息。 由于 Linux 已经写入该信息一次、并且 Linux 不知道 CCS 会重置该内核、因此远程内核将挂起、直到整个处理器重新启动。"
另外、如果要逐步执行其中一个内核、则需要按照此处的说明添加一个 while ()循环
谢谢您、
Paula
您好 Paula、
大家可以看到我在 e2e.ti.com/.../AA.MP4这里也遇到了同样的问题
嗨、Elbon、我觉得所有内核都在运行、您在控制台中看到任何错误吗? 在 Linux 控制台中、可以运行 rpmsg_char_simplet 吗?
IPC 示例 https://dev.ti.com/tirex/explore/node?node=A__Ab31zORiXVgIbeWGmbktOA__AM64-ACADEMY__WI1KRXP__LATEST
谢谢您、
Paula
您是否添加了一个 while 循环(如学院中所述)来停止代码并能够进入该循环?
int main (void) { DebugP_log ("Before System_init\r\n"); 易失性 uint32_t 环路= 1; whid(loop != 0u){;} /*初始化 SOC 特定模块*/ system_init(); DebugP_log ("after System_init\r\n"); BOARD_INIT (); DebugP_log ("after Board_init\r\n");
停止运行后、只需将 CCS 变量中的循环更改为0即可继续
此处的其他调试提示: 适用于 AM64x 的 Sitara MCU+ Academy
谢谢您、
Paula
您好 Paula、
正如你在这里看到的,我看不到程序在 while ()循环暂停!!!
您好 Elbon、您是否更新了 SD 卡中的应用程序?
为了便于您参考、我复制了本常见问题解答最后一篇文章中的以下步骤: (+)[常见问题解答] AM64X:如何将 R5F PRU_ICSSG 以太网与 Linux A53内核组合-处理器论坛-处理器- TI E2E 支持论坛
更新 EVM 文件系统上的 R5F 固件
在 SD 卡文件系统中、复制*。out 并创建新固件的符号链接。 以下是示例步骤。
在学院中、此处简要介绍了这一点: 引导远程核心
如果需要、更新 /lib/firmware/
文件夹中的符号链接以指向新固件:
# ln -sf /full/path/to/firmware_name symbolic_link_name
谢谢你
Paula