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.

[参考译文] PROCESSOR-SDK-AM64X:MCAN 外部环回问题

Guru**** 2391415 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1498197/processor-sdk-am64x-mcan-external-loopback-issue

器件型号:PROCESSOR-SDK-AM64X

工具/软件:

您好、

我使用 mcu_plus_sdk_am64x_10_01_00_32来尝试 mcan_external_loopback_interrupt_am64x-evm_r5fss0-0_freeRTOS 示例、但在调试代码时、编译器块如下面的屏幕截图所示。 我没有显示任何调试日志。

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

    尊敬的 Elbon:

    您能告诉我代码是卡在某个地方还是您在运行代码时遇到任何错误消息、因为从屏幕截图中我找不到任何问题、您能详细说明一下。 您是否连接到 UART 终端并查看该终端的任何应用程序日志?

    此致、

    会面。

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

    尊敬的 Elbon:

    该示例有一个单独的 Tx 和 Rx 应用:

    您正在将应用程序的 Rx 端加载到内核 r5f0-0上并观察相应的日志、但未加载 Tx 应用程序、该应用程序应加载到 r5f0-1、这意味着没有数据发送到 MCAN0、因此测试未完成、并卡在等待来自 MCAN1的数据。 在调试器中、您需要分别从 r5fss0-0_freeRTOS 和 r5fss0-1_nortos 加载二进制文件、并运行两个内核、在这种情况下、您将能够运行此示例。 另请注意、要使此示例正常工作、您需要在外部连接 MCAN0和 MCAN1、请参阅: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_00_00_15/exports/docs/api_guide_am64x/EXAMPLES_DRIVERS_MCAN_EXTERNAL_LOOPBACK_INTERRUPT.html

    我遵循了这些步骤并获得了预期的结果:

    此致、

    会面。

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

    您好、

    我导入了工程 'system_freertos_nortos' 、其中包含两个项目文件: 'r5fss0-1_nortos' 'r5fss0-0_freertos' 。 我正在从这两个文件加载二进制文件 r5fss0-0_freeRTOS r5fss0-1_nortos 工程 r5f0-0 r5f0-1 分别。 但是、我在控制台中看不到任何输出、如下面的屏幕截图所示。

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

    尊敬的 Elbon:

    您能否确认是否从 MCAN0到 MCAN1进行了外部连接?

    [引述 userid="647888" url="~/support/processors-group/processors/f/processors-forum/1498197/processor-sdk-am64x-mcan-external-loopback-issue/5757008 #5757008"]

    但是、我在控制台中看不到任何输出、如下面的屏幕截图所示。

    [/报价]

    您在 UART 终端中看到任何日志吗?

    如果进行了正确的连接、那么您应该能够在 UART 终端中查看我在上一个响应中附加的日志、这个日志在我这边有效  

    此致、

    会面。

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

    尊敬的会议:

    希望您做得好。

    正如我提到的、当前设置对我来说不起作用。 我想使用 CAN 接收来自 A53内核的数据,并使用来自 R5内核的 IPC RPMsg 发送数据。 您能为我的设置建议一个解决方案吗?

    目前、我正在测试该示例mcan_external_loopback_interrupt_am64x、目的是集成 IPC RPMsg 代码。 但是、这个示例mcan_external_loopback_interrupt_am64x对我来说不起作用。

    如果您对我的工作有任何其他改进建议、我愿意听取他们的意见。

    此致、

    Elbon。

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

    尊敬的 Elbon:

    此应用程序的 CCS 日志默认为禁用状态、因此您无法在 CCS 中观察到任何日志。 因此、我建议连接 UART 终端并检查是否有任何日志。 您可从 syscfg 为 r5f0-0和 r5f0-1启用 CCS 日志:

    在两个示例中进行此更改后、我也会在 CCS 中获取日志:

    此致、

    会面。

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

    尊敬的会议:

    "我已启用 r5f0-0和 r5f0-1屏幕所示的 CCS 日志、但我始终会遇到相同的问题:我恢复调试时无法看到任何日志。

    我只是看到这一点:

    这是我的项目架构的屏幕:

    如果你有任何解决方案!

    此致、

    Elbon。

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

    尊敬的 Elbon:

    如果您在调试器中暂停执行、您看一下程序是卡在特定指令上还是在特定错误上? 您能尝试逐步浏览代码并识别问题吗?  

    我仍然怀疑程序本身存在任何问题、从我的回答中可以看出、我在 UART 终端和 CCS 控制台中都收到了日志。  

    您能否确认是否在启用 CCS 日志后重新编译了两个应用? 请使用 UART 终端进行一次检查、如果您在该主题上看到任何日志并附加相同的日志、可以参阅此链接、了解如何检查 UART 终端上的日志: AM64x MCU+ SDK:EVM Setup

    此致、

    会面。

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

    这是 UART 模式下的输出:

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

    当我逐步调试代码时、它会到达vTaskStartScheduler();代码停止并停止执行的行。

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

    您是从 Linux 还是 CCS 加载应用程序? 如果 Linux 和 MCAN 示例使用相同的 UART、则您可能无法查看日志。

    它到达vTaskStartScheduler();代码停止并停止执行的行。

    执行没有停止、从调试窗口中可以看出 R5_0_0正在运行、因此我认为应用程序没有任何问题。 调试器不会在任何位置停止、因为您尚未设置任何断点。 验证应用程序是否正常工作的另一种方法是在中的此处设置断点 mcan_rx_only_interrupt.c 文件:

    对于 r5f0-1上的 Tx 应用程序、可在 mcan_tx_only_interrupt.c 中设置断点、如下所示:

    如果调试器在这些指令处停止、那么您可以验证应用程序是否正常工作、只是由于某种原因无法查看日志。

    请注意、这两个应用都需要运行才能访问此处。

    此致、

    会面。

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

    尊敬的会议:

    看、我mcan_tx_only_interrupt.cmcan_rx_only_interrupt.c按照您的建议在和中设置了一个断点。 但是、调试器不输入代码。 它停在main.c行中vTaskStartScheduler();、如屏幕所示。

    此致、

    Elbon。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请注意、这两个应用程序都需要运行才能访问此处。

    从调试器窗口似乎您这次没有加载 r5f0-1应用程序、您需要加载并运行这两个应用程序以使应用程序继续运行。

    如果暂停执行、您可以看到程序当前处于哪个指令? 我想它将遵循中的指令 mcan_rx_only_interrupt.c 等待 Tx 数据、因为 r5f0-1上的 Tx 应用程序未运行:

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

    是的,我认为调试器停止在这一行:

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

    尊敬的会议:

    我正在尝试另一个项目:"CAN_EXTERNAL_READ_WRITE_"示例! 但是、如您所见、调试器在此行会停止:

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

    您是否也会运行 r5f0-1并检查、r5f0-0上的 Rx 应用程序在此处卡住、因为它正在等待从 r5f0-1应用程序接收消息。

    另请确认外部连接是否按照此处所述正确完成: software-dl.ti.com/.../EXAMPLES_DRIVERS_MCAN_EXTERNAL_LOOPBACK_INTERRUPT.html

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

    流程如下所示:

    e2e.ti.com/.../MCAN_5F00_EXT_5F00_LOOPBACK.mp4