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.

[参考译文] RTOS/TDA2EXEVM:在 tda2xx 中启用来自 SYSBIOS RTOS 的自定义 UART

Guru**** 2539500 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/665277/rtos-tda2exevm-enabling-custom-uart-from-sysbios-rtos-in-tda2xx

器件型号:TDA2EXEVM
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

大家好、

我目前正在使用 Jacinto 6 EVK 板。我们将使用 C ustom 板,其中 UART3用于从 SYSBIOS (RTOS)进行读/写。 我 知道 uart0默认处于启用状态(用于 USB 迷你端口进行调试),因此我能够在 vision sdk3.0中的用例(路径:/processor_sdk_vision_03_02_00_00/vision_sdk/apps/src/rtos/usecase)中与 uart0配合使用。 您能不能帮助我从 RTOS 中启动 uart3。 引脚详细信息如下所示。

D27 - uart2_CTSN/uart3-RxD

C28-uart2_rtsn

提前感谢。

巴格亚姆

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

    我已将您的问题转交给一位专家征求意见。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请更改 ti_components/drivers/pdk_文件中的函数 bsp_platformTda2xxSetPinMux ()中的 UART1 pinmux 设置 根据您选择的引脚将/packages/ti/drv/vps/src/platforms/src/bsp_platformTda2xx.c 更改为 UART3。

    bsp_platformSetPinmuxRegs ((UINT32) 0、(UINT32) CTRL_core_pad_UART3_TXD、
    bsp_platform_IOPAD_CFG_INPUTENABLE_OUT |
    bsp_platform_IOPAD_CFG_PULLUDENABLE_ENABLE |
    bsp_platform_IOPAD_CFG_PULLTYPESELECT_UP);
    bsp_platformSetPinmuxRegs ((UINT32) 0、(UINT32) CTRL_core_pad_UART3_RXD、
    bsp_platform_IOPAD_CFG_INPUTENABLE_BI |
    bsp_platform_IOPAD_CFG_PULLUDENABLE_DISABLE |
    bsp_platform_IOPAD_CFG_PULLTYPESELECT_DOWN);

    完成此操作后、将 VSDK 中创建的 UART 驱动程序更改为指向 UART3。
    在文件 vision_sdk\links_fw\src\rtos\utils_common\src\utils_uart.c 中 fxn System_uartInit()
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已使用此信息 processors.wiki.ti.com/.../PDK_FAQ 更新 PDK 常见问题解答 wiki 页面
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Siva、
    非常感谢您的快速回复。 我想在引脚所在的定制板中添加新的 UART (而不会干扰默认 uart1)

    D27 - uart2_CTSN (信号名称)-->多路复用模式2.

    C28 - uart2_rtsn (信号名称)--- >多路复用模式1。

    因此我已经在函数 bsp_platformTda2xxSetPinMux ()中添加了以下代码

    /* UART1多路复用器*/
    bsp_platformSetPinmuxRegs ((UINT32) 0、(UINT32) CTRL_CORE_PAD_UART1_RXD、
    bsp_platform_IOPAD_CFG_DEFAULT);
    bsp_platformSetPinmuxRegs ((UINT32) 0、(UINT32) CTRL_CORE_PAD_UART1_TXD、
    bsp_platform_IOPAD_CFG_DEFAULT);
    bsp_platformSetPinmuxRegs ((UINT32) 0、(UINT32) CTRL_core_pad_UART1_CTSn、
    bsp_platform_IOPAD_CFG_DEFAULT);
    bsp_platformSetPinmuxRegs ((UINT32) 0、(UINT32) CTRL_core_pad_UART1_RTSN、
    bsp_platform_IOPAD_CFG_DEFAULT);
    /*UART3多路复用器*/
    bsp_platformSetPinmuxRegs ((uint32) 1、(uint32) CTRL_core_pad_UART2_RTSN、/* uart3-TXD*
    bsp_platform_IOPAD_CFG_INPUTENABLE_OUT |
    bsp_platform_IOPAD_CFG_PULLUDENABLE_ENABLE |
    bsp_platform_IOPAD_CFG_PULLTYPESELECT_UP);
    bsp_platformSetPinmuxRegs ((uint32) 2、(uint32) CTRL_core_pad_UART2_CTSn、/* uart3-RxD*/
    bsp_platform_IOPAD_CFG_INPUTENABLE_BI |
    bsp_platform_IOPAD_CFG_PULLUDENABLE_DISABLE |
    bsp_platform_IOPAD_CFG_PULLTYPESELECT_DOWN);

    --
    ----
    ----




    如何同时使用 UART1和 UART3 (Rx 和 TX 具有不同的多路复用模式)

    我想知道这些更改需要在文件中完成 /vision_sdk\links_fw\src\rtos\utils_common\src\utils_uart.c?
    我是否应该为另一个 UART 编写单独的 UART 驱动程序/API? 您能不能为我提供 UART 示例代码、以便从外部器件读取/写入


    谢谢、此致
    巴加亚拉亚
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于用于 UART1和 UART3的引脚不同、因此它们可以共存而不会出现任何问题。
    在 VSDK 中、如果要同时使用两个 UART、则需要在我提到的文件中实例化这两个 UART 实例。
    但请注意、API 的编写方式只能使用一个实例-因为 UART 读/写 API 不采用 UART 实例 ID。
    因此、更简单的解决方案是将 utils_uart.c 复制粘贴到 utils_uart3.c、修改全局变量和 API 以包含"3"后缀、然后从应用程序调用相应的 API。 在执行此操作时、您需要修改 vision_sdk\links_fw\src\rtos\utils_common\src\SRC_files.mk 以包含 uart3.c 文件
    SRCS_$(IPU_PRIMARY_CORE)+= utils_execp_trace_local_m4.c utils_uart.c utils_uart3.c \

    在调用 System_uartInit3()、Utils_uartCreateDevice3()和 Utils_uartDeleteDevice3() API 之后,会从此处调用 UART1 API。

    我建议您首先更改 UART3的现有文件、并验证其工作正常。 然后、可以完成上述更改并进行测试、以同时支持 UART1/3
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Siva、
    感谢您的回复。 我正在 rules.make 文件中使用"MAKCONFIG?=tda2xx_EVM_Linux_All"、我使用的是 HLOS 文件夹、而不是仅使用 RTOS。 我在此找不到任何 UART 驱动程序示例代码。 在该配置中、更改"ti_components / drivers/pdk_ /packages/ti/drv/vps/src/platforms/src/bsp_platformTda2xx.c 文件将配置我的定制 UART??? 请帮帮我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    对于 tda2xx_EVM_Linux_all 配置、包括 UART 在内的所有外设均由 A15上运行的"Linux"控制。  仅使用 PDK 中的某些视频驱动程序。

    您能否告诉我您尝试在 VSDK Linux 中修改什么内容或您尝试添加什么功能?

    此致、Shiju

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Siva、
    >Siva:您能告诉我您尝试在 VSDK Linux 中修改什么内容还是您尝试添加什么功能吗?
    bhagyam:我们需要从 M4接收来自 UART2_CTSN/UART2_RTSN 引脚(多路复用为 UART3)的数据、并进行处理以进行显示。 为此,我将使用"MAKECONFIG?=tda2xx_EVM_BIOS_All"。 为此,我使用了 VSDK,并遵循了您的建议。 我更改了"ti_componels/drivers/pdk_ /packages/ti/drv/vps/src/platforms/src/bsp_platformTda2xx.c 文件 我添加了一个新的"my_usecase"、并编写了一个简单的.c 文件以进行读取和写入。 但我仍然无法读取/写入。 因此、我尝试使用" MAKECONFIG?=tda2xx_EVM_Linux_All"。

    我想启用 UART2/UART3以及默认 UART,并且需要从 M4内核访问(r/w)。



    >Siva:对于 tda2xx_EVM_Linux_all 配置,包括 UART 在内的所有外设均由 A15上运行的"Linux"控制
    >bhagyam:正确。 因此,我们需要从/arch/arm/boot/dts/dra7xx-evm.dts 文件配置 UART3。 我是对的吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,bhagyam
    感谢您提供详细信息。
    在您的情况下、我不喜欢 tda2xx_EVM_Linux_all 配置、因为在该配置中未验证通过 UART 进行的数据采集。
    使用 tda2xx_EVM_BIOS_all 配置、我们有一个 uC、我们在其中读取与 UART 连接的超声传感器、UART 从这些传感器读取数据
    请参阅 uC:\vision_sdk\apps\src\rtos\usecases\LVDS_VIP_SV_analysis_us
    忽略所有 SRV 部分。
    要启用超声波捕获、您需要启用
    Ultrasonic include=是
    在\vision_sdk\apps\configs\tda2xx_evm_BIOS_all\ccfg.mk 中

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

    您好、Shiju、

    感谢您的更新。 我将使用 "tda2xx_EVM_BIOS_All"。

    我们有一个定制板。 我们需要从该 UART 读取数据

    D27 - uart2_CTSN (信号名称)-多路复用模式2.

    C28 - uart2_rtsn (信号名称)-多路复用模式1引脚。

     我在"ti_componuts/drivers/pdk_中进行了以下更改 /packages/ti/drv/vps/src/platforms/src/bsp_platformTda2xx.c "

    /*UART3多路复用器*/

    bsp_platformSetPinmuxRegs ((uint32) 1、(uint32) CTRL_core_pad_UART2_RTSN、/* uart3-TXD*

    bsp_platform_IOPAD_CFG_INPUTENABLE_OUT |

    bsp_platform_IOPAD_CFG_PULLUDENABLE_ENABLE |

    bsp_platform_IOPAD_CFG_PULLTYPESELECT_UP);

    bsp_platformSetPinmuxRegs ((uint32) 2、(uint32) CTRL_core_pad_UART2_CTSn、/* uart3-RxD*/

    bsp_platform_IOPAD_CFG_INPUTENABLE_BI |

    bsp_platform_IOPAD_CFG_PULLUDENABLE_DISABLE |

    bsp_platform_IOPAD_CFG_PULLTYPESELECT_DOWN);

    并使用 路径中的"make -s all Board=tda2xx-evm core=ipu1_0"进行编译  /processor_sdk_vision_03_02_00_00/ti_compons/drivers/pdk_01_08_01_06/packages/ti/build".e2e.ti.com/.../my_5F00_usecase_5F00_rtos.tar.gz

    然后我将 utils_uart.c 复制到 utils_uart3.c。我建议将 UART 实例更改为3并更改 uartprint3 API。 我确实包含 utils_uart3.c 文件。 然后我编写了自己的用例 。请找到附件。 我已编译并生成了 AppImage。 我准备了 SDcard 并插入了。 然后、UART3读取/写入操作不会发生。(Forte 正在运行、我刚刚使用 uart3printf)。 请帮帮我。 我需要的只是自定义 UART、其配置和用例。

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

    bhagya

    您是否尝试通过 Vision SDK 或作为独立 PDK 示例创建此基于 UART 的应用?

    此致、Shiju

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Siva、
    我尝试仅从 Vision SDK 创建此基于 UART 的应用、其中使用默认 UART0以外的新 UART。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    如果您使用 J6 EVM、首先检查默认 UART0是否适合您
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Shiju、
    UART0工作正常。 我认为我没有清楚地传达我的要求。 有一个 MCU 连接到基于 J6的定制板。MCU 通过 UART2_CTSN/UART2_RTSN 引脚将 UART 数据发送到 J6。 J6必须从 M4 SYSBIOS 接收数据。 我需要在 VSDK 应用中实现这一点。 我的要求是从 SYSBIOS 启用 UART 并从 Vision SDK 写入 UART2_READ/WRITE API (基于 UART 的应用程序)。 我想同时使用 UART (UART0和 UART2)。

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

    您好:Bhagyam、

    UART 驱动程序支持 UART 的所有实例。

    您可以在 DEV_id 设置为2的情况下调用 GIO_addDevice、并打开驱动程序句柄并用于使用 UART2进行通信。

    您可以参考 PDK 中提供的示例、网址为 \packages/ti\drv\bsp_lld\uart\src

    添加 UART2实例的 DMA 交叉开关映射。

    此致、

    Prasad

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在尝试从 Vision SDK 中添加新的 UART。 我找不到任何此过程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好:Bhagyam、

    在 VSDK 中、为用于以下文件中的控制台日志的默认 UART 实例创建 UART 器件。
    Links_FW/src/rtos/utils_common/src/utils_uart.c

    您可以参考此信息来创建 UART2器件的句柄、并调用驱动程序的 GIO_WRITE 和 GIO_READ API 来执行传输。

    此致、
    Prasad