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-J7200:如何使用 UART_printf 或其他方式在控制台上显示日志?

Guru**** 2434970 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1540305/processor-sdk-j7200-how-to-use-uart_printf-or-other-ways-to-display-the-log-on-the-console

器件型号:PROCESSOR-SDK-J7200


工具/软件:

您好:

 我在 ipc-J7200 中运行 ipc 回声测试示例 PROCESSOR-SDK-RTOS、我想看到一些打印图、但 printf 和 UART_printf 都不起作用。(尽管原始示例代码中存在 UART_printf ,但效果不起作用。)

我想知道如何将 R core 输出日志发送到控制台。是否可以在不同的控制台上打印 A core 和 R core 的日志?  需要修改什么配置或代码?

谢谢

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

    您好、

     我在 ipc-J7200 中运行 ipc echo 测试示例 PROCESSOR-SDK-RTOS、我想看到一些打印、但 printf 和 UART_printf 都不起作用。(尽管原始示例代码中存在 UART_printf ,但它不起作用。)

    默认 MCU 示例在 MCU UART 控制台上打印数据、如果“ ENABLE_UART_PRINT “已定义构建标志。

    在 TI SDK 中、仅对 MCU1_0 内核和 MAIN 域内核启用了该功能、默认情况下未定义。

    我想知道如何将 R core 输出日志发送到控制台。是否可以在不同的控制台上打印 A core 和 R core 的日志?  需要修改什么配置或代码?

    是的、您可能需要使用与 R CORE 应用不同的主域 UART 实例、默认情况下为 Linux 等核心应用启用主 UART 0。

    请参阅 常见问题解答 、使用 IPC 示例中的 UART 实例更改。

    此致、
    Sudheer

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

    您好:

    我在常见问题解答中使用了相同的方法、唯一的区别是   initParams.uartInst = Board_UART3_Instance;然后 我使用命令编译工程: make -s ipc_echo_test_freertosear Board=j7200_evm core=MCU2_0。   将生成的.xer5f 放入 lib/firmware/ti-ipc/j7200 中。 我测试./rpmsg_char_simplet 以便与 MCU2_0 进行通信、但 UART 上不会打印任何内容。在此过程中是否执行了任何错误操作?

    谢谢

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

    您好、

    project: make -s ipc_echo_test_freertosear BOARD=j7200_evm core=MCU2_0。   将生成的.xer5f 放入 lib/firmware/ti-ipc/j7200 中。 我测试./rpmsg_char_simple 以便与 MCU2_0 进行通信、但 UART 上不会打印任何内容。在此过程中、我是否执行了任何错误操作?

    您是否如上所述在 Makefile 中为 MCU2_0 内核启用了 UART 构建标志?

    默认 MCU 示例在 MCU UART 控制台上打印数据、如果“ ENABLE_UART_PRINT “已定义构建标志。

    此致、
    Sudheer

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

    是、我 启用了 ENABLE_UART_PRINT。   

    我  在 faq.c 中修改了函数 ipc_boardInit ()。我发现调用它的函数--taskFxn (void * a0、void * a1)、其中有一个注释:

    /* IPC 板初始化只能用于 MCU1_0(对于 Linux)、
    *无条件支持 RTOS
    */

    #if defined (A72_Linux_OS)&& defined (BUILD_MCU1_0)
    IPC_boardInit();
    #elif!defined (A72_linux_os)
    IPC_boardInit();
    #endif

    因为宏,我发现 ipc_boardInit() 不是 通过测试使用的,我通过修改代码来调用它,但是   失败:

    rpmsg_char_find_ctrldev:找不到与 virtio1.rpmsg_chrdev.–1.14 匹配的 rpmsg_ctrl 设备
    无法创建端点设备:参数无效
    测试状态:失败

    我不确定这是否与我的问题有关、但仍然无法打印。

    你有什么建议吗?

    谢谢

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

    您好、

    [报价 userid=“662532" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1540305/processor-sdk-j7200-how-to-use-uart_printf-or-other-ways-to-display-the-log-on-the-console/5931570

    我  在 faq.c 中修改了函数 ipc_boardInit ()。我发现调用它的函数--taskFxn (void * a0、void * a1)、其中有一个注释:

    /* IPC 板初始化只能用于 MCU1_0(对于 Linux)、
    *无条件支持 RTOS
    */

    #if defined (A72_Linux_OS)&& defined (BUILD_MCU1_0)
    IPC_boardInit();
    #elif!defined (A72_linux_os)
    IPC_boardInit();
    #endif

    因为宏,我发现 ipc_boardInit() 不是 通过测试使用的,我通过修改代码来调用它,但是   失败:

    [/报价]

    您必须启用 IPC_boardInit () 和 Board_init () with boardCfg of Board_INIT_PINMUX_CONFIG。

    此外、默认情况下、SDK 中不使用 UART3、因此 UART3 引脚可用于其他功能。

    您能否确认、您是否注意从 PADCONFIG 寄存器选择 UART3 引脚多路复用? 有关更多详细信息、请参阅“技术数据表“。
    SDK、仅启用 Y18、Y19 引脚对于 UART3、请参阅 pdk/packages/ti/board/j7200_evm/J7200_pinmux_data.c src 文件以了解更多详细信息。
    请检查您在定制电路板上使用的引脚是否为 UART 启用了引脚多路复用配置?

    此致、
    Sudheer

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

    您好、

    我知道使用  UART3 需要额外的设置。我测试了 initParams.uartInst = Board_UART_instance; 它可以成功打印、但内容会乱码。

    这应该是某种配置问题、但我不知道如何解决。 您能给我一些建议吗?

    谢谢

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

    您好、

    我知道使用  UART3 需要额外的设置。我测试了 initParams.uartInst = Board_UART_instance; 它可以成功打印、但内容乱码。

    默认 UART 配置设置为 115200 波特率、1 个停止位和无奇偶校验。

    您能否检查是否使用相同的配置打开了 UART 终端?

    此致、
    Sudheer

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

    您好、

    是、我已选中

    谢谢

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

    您好、

    [引述 userid=“540868" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1540305/processor-sdk-j7200-how-to-use-uart_printf-or-other-ways-to-display-the-log-on-the-console/5933711
    您能否检查是否已使用相同的配置打开 UART 终端?

    如果即使在使用正确的配置时仍遇到问题、您能否检查引脚混合中使用的引脚和为引脚选择的功能(如前所述)?

    您必须使用 boardCfg of Board_init_PINMUX_config 启用 IPC_boardInit () 和 Board_init () 。

    此外、默认情况下、SDK 中不使用 UART3、因此 UART3 引脚可用于其他功能。

    您能否确认、您是否注意从 PADCONFIG 寄存器选择 UART3 引脚多路复用? 有关更多详细信息、请参阅“技术数据表“。
    SDK、仅启用 Y18、Y19 引脚对于 UART3、请参阅 pdk/packages/ti/board/j7200_evm/J7200_pinmux_data.c src 文件以了解更多详细信息。
    请检查您在定制板上使用的引脚是否为 UART 启用了引脚多路复用配置?


    此致、
    Sudheer

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

    您好、

    我在 ipc_testsetup.c 的函数 int32_t ipc_echo_test (void) 中重新添加了打印内容:

    #ifdefined (BUILD_MPU1_0)&& defined (A72_LINUX_OS)
    /*如果 A72 远程内核在运行 Linux 操作系统、则
    *加载资源表
    */
    IPC_loadResourceTable ((void *)&ti_ipc_remoteproc_ResourceTable);
    UART_printf(“bbbbbbbbb\n")“);
    #ifdefined (A72_LINUX_OS_IPC_attach)
    /*等待 Linux vdev 就绪... */
    UART_printf(“ccccccc \n“);
    对于 (t = 0;t < NUMPROC;t++)
    while(!ipc_isRemoteReady (pRemoteProcArray[t]))
    TaskP_sleep (10);
    }
    }
    UART_printf(“dddddddd \n“);
    //App_printf(“Linux VDEV 现已准备就绪...“) \n“);
    #endif
    #endif
    前两个打印语句“b"和“和“c"是“是正确的、但“d"  是“是乱码的。
    为什么会发生这种情况? 您能告诉我 任何可能的原因吗?
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    [报价 userid=“662532" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1540305/processor-sdk-j7200-how-to-use-uart_printf-or-other-ways-to-display-the-log-on-the-console/5934082
    前两个打印语句“b"和“和“c"是“是正确的、但“d"  是“是乱码的。
    为什么会发生这种情况? 您能告诉我 任何可能的原因吗?
    [/报价]

    似乎加载了 POST Linux。 UART 打印是随机符号。
    当更改 UART 的功能时钟或将 UART 的引脚功能更改为其他时钟时、可能会发生这种情况。  

    您使用的是主 UART3 还是 MCU UART? Linux 引导后、请检查引脚多路复用器选择。

    此致、
    Sudheer

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

    您好、

    我使用了  MCU UART、并在 k3-j7200-common-proc-board.dts.dts 中禁用了 mcu_uart0、从而解决了 随机符号打印问题。

    我不确定它在 Linux 中的用途。  它会影响 Linux 的功能吗?

    感谢您的帮助和耐心。

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

    您好、

    [报价 userid=“662532" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1540305/processor-sdk-j7200-how-to-use-uart_printf-or-other-ways-to-display-the-log-on-the-console/5939058

    我使用了  MCU UART、并在 k3-j7200-common-proc-board.dts.dts 中禁用了 mcu_uart0、从而解决了 随机符号打印问题。

    我不确定它在 Linux 中的用途。  它会影响 Linux 的功能吗?

    [/报价]

    默认 MCU UART 从 Linux 启用、导致 UART 重新初始化。
    它不会对 Linux 功能产生任何影响。 Linux 无法访问 MCU UART、因为您已将其禁用。 Linux 的默认调试日志来自主 UART0。

    此致、
    Sudheer