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.

[参考译文] J784S4XEVM:如何在 UART 测试应用中更改 UART 实例

Guru**** 2487425 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1418242/j784s4xevm-how-to-change-uart-instance-in-uart-test-apps

器件型号:J784S4XEVM

工具与软件:

尊敬的 TI:

我们使用的是 j784s4评估板(SDK 版本10)。

目前,我们已经成功运行了 UART 测试应用程序( UART_SKU, Baremetal_Test UART_TestApp_FreeRTOS ),而不改变代码。

映像通过 SD 卡(SBL)引导。

在默认配置下、我们 可在同一 UART 实例- J78连接器上的第二个端口(在 EVM 用户指南中标记为 WKUP_UART)上获取输出内容(适用于 SBL 和 TestApp)。

我们要更改用于测试的 UART (基本上是要测试主 UART5、MCU UART0和 WKUP UART0)。

在哪里选择了 UART 实例? 是否有多个应该选择此选项的位置?

此致、

Milena

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

    尊敬的 Milena:

    [报价用户 id="307047" url="~/support/processors-group/processors/f/processors-forum/1418242/j784s4xevm-how-to-change-uart-instance-in-uart-test-apps "]

    在哪里选择了 UART 实例? 是否有多个应该选择此选项的位置?

    [报价]

    在 UART_getTestInstNum 函数中选择 UART 实例。 它使用 UART_INSTANCE 宏命令并设置全局变量 uartTestInstance。 这样、您无需在多个位置进行更改、只需使用想要使用的 UART 实例更新 UART_INSTANCE 宏。

    谢谢!

    Neehar

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

    您好 Neehar:

    我已经尝试更改上述宏 UART_INSTANCE、但未按预期工作。

    有关我正在检查的 src 的定义:ti/board/uart/j784s4_evm/include/uart/ board_cfg.h

    /* UART LLD instance number for primary UART port */
    #define BOARD_UART_INSTANCE                             (8U)
    /* UART LLD instance number for MAIN UART1 port */
    #define BOARD_UART1_INSTANCE                            (1U)
    /* UART LLD instance number for MAIN UART2 port */
    #define BOARD_UART2_INSTANCE                            (2U)
    /* UART LLD instance number for MAIN UART3 port */
    #define BOARD_UART3_INSTANCE                            (3U)
    /* UART LLD instance number for MAIN UART4 port */
    #define BOARD_UART4_INSTANCE                            (4U)
    /* UART LLD instance number for MAIN UART5 port */
    #define BOARD_UART5_INSTANCE                            (5U)
    /* MCU UART LLD instance number */
    #define BOARD_MCU_UART_INSTANCE                         (0U)
    /* WKUP UART LLD instance number */
    #define BOARD_WKUP_UART_INSTANCE                        (0U)

    UART_INSTANCE 在 COM 上可见打印(测试后) 应在 COM 上显示?
    Board_UART_INSTANCE (默认值)

     J48的第2个端口(WKUP)

    SBL+应用 日志(请参阅屏幕截图)

    J49 (UART8)的第1个端口?

    SBL+应用 日志

    Board_WKUP_UART_INSTANCE

     J48的第2个端口(WKUP)

    SBL+应用 日志

    (请参阅屏幕截图)

     J48的第2个端口(WKUP)

    SBL+应用 日志

    BOARD_MCU_UART_INSTANCE

     J48的第2个端口(WKUP)

    SBL+应用 日志

    (请参阅屏幕截图)

    J48的第1个端口(MCU)

    SBL+应用 日志

    BOARD_UART5_INSTANCE

     J48的第2个端口(WKUP)

    仅 SBL 日志。 应用程序日志在任何端口上均不可见

    (请参阅屏幕截图)

    J49 (UART8)的第1个端口?

    SBL+应用 日志

    我总结了测试后的结果。  COM6、7、8、9来自 J49、而 COM 11、12来自 J48连接器。  

    /cfs-file/__key/communityserver-discussions-components-files/791/UART_2D00_logs.zip

    我这边的问题是:

    • 我对这些映射的理解是否正确? 预期行为是否正确?
    • 另外、对于 WKUP 和 MCU、define 语句是相同的(0)、会生成完全是位的二进制映像。  
    • 仅更改宏无法实现预期的效果? 为了测试这三个 UART: MAIN UART5、MCU UART0和 WKUP UART0、还应做哪些更改?

    此致、

    Milena

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

    表中的拼写错误、表中的左侧单元格应填充 以下文本:

    J49的第2个端口(UART5)->而非 UART8。

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

    尊敬的 Milena:

    您还必须更改   位于的 gBoardInitParams 中的 Board_UART_INSTANCE 和/或 Board_UART_SOC_DOMAIN  [pdk_install_path/packages/ti/board/sds/j721e_evm/board_utils.c src . 这是因为 在 boardCfg 中设置 Board_init_UART_stdio 的情况下调用 Board_init (boardCfg)时会使用这些参数。 ​

    谢谢!

    Neehar

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

    Neehar、您好!

    即使我更改了 j784s3_EVM 电路板的 board_utils.c 文件、我这边的行为仍然相同。

    当我应用 MCU 和 WKUP 设置时、UART 示例中的日志可在 WKUP UART 上看到、而 当对主 UART 应用参数时、任何 UART 实例中都不存在日志。 我缺少一些东西,或者其他东西也必须被改变。

    我这边的其他问题与默认设置相关、但我没有进行更改:

    • 在 board_utils.c 中、域设置为 MCU、UART 实例设置为0、而在 UART_TestApp 中、UART 实例设置为 Board_UART_Instance (8U)。 产生的行为是 WKUP UART 上可见的日志。 这不是我在回答这些问题后所期待的。 您能解释一下吗?

    我明天将尝试使用 CCS 和 XDS 进行调试、其他详细信息将会介绍。

    此致、

    Milena

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

    尊敬的 Milena:

    [报价 userid="307047" url="~/support/processors-group/processors/f/processors-forum/1418242/j784s4xevm-how-to-change-uart-instance-in-uart-test-apps/5442862 #5442862"]当我应用 MCU 和 WKUP 设置时、来自 UART 的日志示例在 WKUP UART 上可见、而 当应用用于主 UART 的参数时、日志在任何 UART 实例上均不存在。 我缺少一些东西,或者其他东西也必须改变。

    您对 Board_UART_INSTANCE 和 Board_UART_SOC_DOMAINS 使用哪些值?

    [报价 userid="307047" url="~/support/processors-group/processors/f/processors-forum/1418242/j784s4xevm-how-to-change-uart-instance-in-uart-test-apps/5442862 #5442862"]在 board_utils.c 中、域设置为 MCU、UART 实例设置为0、而在 UART_TestApp 中:UART 实例设置为 Board_UART_Instance (8U)。 产生的行为是 WKUP UART 上可见的日志。 这不是我在回答这些问题后所期待的。 您能解释吗?

     gBoardInitParams 是用于更改日志可见端口的主要参数。 uart_instance 用于初始化您要使用的 UART 实例。

    谢谢!

    Neehar

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

    您好 Neehar:

    您对 Board_UART_Instance 和 Board_UART_SOC_DOMAINS 使用的值是什么?[/quot]

    我使用了以下内容、  

    • gBoardInitParams ={Board_UART5_instance、BOARD_SOC_DOMAIN_MAIN 、...和 UART_INSTANCE 设置为 Board_UART5_INSTANCE   
      • 测试应用程序中没有日志
    •  gBoardInitParams ={Board_WKUP_UART_INSTANCE、BOARD_SOC_DOMAIN_WKUP、...和 UART_INSTANCE 设置为 Board_WKUP_UART_INSTANCE
      • WKUP UART 上存在的日志
    • gBoardInitParams ={Board_MCU_UART_INSTANCE、Board_SOC_DOMAIN_MCU、...和 UART_INSTANCE 设置为 Board_MCU_UART_INSTANCE
      • WKUP UART 上存在的日志。 日志不应位于 MCU UART0上?

    此致、

    Milena

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

    尊敬的 Milena:

    您能否详细说明 WKUP_UART 中的日志的含义?

    J784S4 EVM 有两个 UART 端口 J48和 J49、分别用于 MCU 域和主域。 J48的第一个端口保留给 Cortex M4F、J48的第二个端口用于 MCU R5F 日志。

    谢谢!

    Neehar

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

    Neehar、您好!

    我通过链接 https://www.ti.com/lit/ug/spruj62/spruj62.pdf 查看了 EVM 用户指南 、并参考了以下部分:

    当我说 WKUP UART 时、我指的是此连接器上的第二个端口。

    我刚刚检查了原理图: sprr458b/PROC141E3 (001)_SCH.pdf 和 J48连接器:

    • MCU_UART0 RX/TX 连接到该连接器的 FT2232_UART1、和
    • WKUP_UART0 RX/TX 连接到 该连接器的 FT2232_UART0  

    这似乎是应更改用户指南中的 MCU 和 WKUP 位置、即应将 WKUP 更改为端口0并将 MCU 置于该连接器上端口1上?

     

    总的来说、我这边的目标是访问全部三个 UART (MAIN、MCU 和 WKUP)。 我的理解是 MCU 域可以访问 WKUP UART?

    此致

    Milena

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

    尊敬的 Milena:

    感谢您提供这些信息。 我想确认一下您在提到 WKUP_UART 时的意思。

    gBoardInitParams ={Board_UART5_instance、 Board_SOC_DOMAIN_MAIN、……且 UART_INSTANCE 设置为 Board_UART5_INSTANCE   
    • 测试应用程序中没有日志
    [报价]

    当您将 gBoardInitParams 更改为 Board_UART5_instance 时、您在 uart_board.h 中将#define UART_INSTANCE 设置为什么? 是否也将#define UART_INSTANCE 更改为  Board_UART5_INSTANCE?

    谢谢!

    Neehar

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

    您好 Neehar:

    也将 UART_board.h 中的"定义"更改为 Board_UART5_Instance。

    此致、

    Milena

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

    尊敬的 Milena:

    让我来测试一下、马上与您联系。

    谢谢!

    Neehar

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

    Neehar、您好!

    是否有任何有关此问题的更新?

    此致、

    Milena

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

    尊敬的 Milena:

    您在哪个内核上构建和执行应用?

    根据 board/uartStdioInit API 中的 board/uartUART/j721e_evm/board_LLD_init.c 、只有当 src 实例不等于 socDomainCore 时、才会更新基址。

    谢谢!

    Neehar

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

    Neehar、您好!

    是为 mcu1-0内核构建的应用程序。 请参阅下面使用的步骤和二进制文件:

    • 对于 SBL:
      • 使 Board=j784s4_evm core=mcu1_0 sbl_mmcsd_img disable_recurse_deps=no -sj6
      • /home/tisdk/ti-processor-sdk-rtos-j784s4-evm-10_00_00_05/pdk_j784s4_10_00_00_27/packages/ti/boot/sbl/binary/j784s4_evm/mmcsd/bin/sbl_mmcsd_img_mcu1_0_release.tiimage -> tiboot3.bin
    • 对于 SBL 应用:
      • 使板=j784s4_evm Baremetal_Test
      • /home/tisdk/ti-processor-sdk-rtos-j784s4-evm-10_00_00_05/pdk_j784s4_10_00_00_27/packages/ti/binary/UART_Baremetal_Test 4.12.730/bin/j784s4_evm/uart_schoc_mcu1_0_release.appimage Baremetal_Test ->应用程序

    此致、

    Milena

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

    尊敬的 Milena:

    您可以针对主 R5 (如 MCU2_0、MCU2_1、MCU3_0、MCU3_1)进行构建并测试吗?

    您是否还可以测试并查看在 board/board/sdi/j721e_evm/board_LLD_init.c 中的 Board_uartStdioInit API 中设置了哪些 uartBaseAddr src?

    谢谢!

    Neehar

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

    Neehar、您好!

    我将进行测试、然后回复给您。

    此致、

    Milena

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

    尊敬的 Milena:

    谢谢、我会等待您的结果。

    谢谢!

    Neehar

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

    您好 Neehar:

    我尚未测试上述 TEST_APP、但我们切换到 CSL_UART_TEST_APP (CSL/EXAMPLE/UART/UART_TEST)。

    这个应用在不改变主 AD MCU UART 的情况下运行(通过在 main.c 中选择适当的 baseAddr)。

    要使 WKUP UART 正常运行、需要在 uartConfig.c 文件(CSL/example/utils/uart_console/uartConfigInit/)中的函数 src 中进行额外更改 。

    还需要为 WKUP 启用正确的输入时钟(之前仅用于 MCU)。

    void UARTConfigInit(uint32_t baseAddr, uint32_t baudRate, uint32_t wordLength,
                        uint32_t stopBit, uint32_t parity, uint32_t mode)
    {
        uint32_t divisorValue = 0U, fifoConfig = 0U;
        uint32_t inputClock = UART_MODULE_INPUT_CLK;
    #if defined (SOC_AM65XX) || defined (SOC_J721E) || defined (SOC_J7200) || defined (SOC_J721S2) || defined (SOC_J784S4) || defined (SOC_J742S2)
        if (baseAddr == CSL_MCU_UART0_BASE || baseAddr == CSL_WKUP_UART0_BASE)
        {
            inputClock = UART_MODULE_MCU_INPUT_CLK;
        }
    
    #endif

    这足以满足我们的内部测试要求。 我们可以关闭该线程。

    此致、

    Milena