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.

[参考译文] TMDS62LEVM:有关 RTOS SDK 的 UART init 的问题

Guru**** 2455560 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1484190/tmds62levm-question-about-uart-init-for-rtos-sdk

器件型号:TMDS62LEVM

工具与软件:

您好!

我有一个关于 uart_init ()函数或用于其他外设的任何其他类似函数的问题

从 TI 的示例代码的角度来看、它看起来更喜欢的方法是一次性初始化所有需要的 UART。 然而、在我们的用例中、我们一次只初始化一个 UART、同时始终保持调试 UART、所以可以打印一些错误消息(如"overflow"等)、更像是一个结构

USER_UART_INIT (uartn)

    根据 uartn 初始化 UART 引脚;

    基于 uartn 启用 UART 时钟;

    uart_init();

    uart_open();

    返回 UART_Handle;

}

USER_UART_init (console_uart);

USER_UART_INIT (uart5);

 如果我们逐一初始化、驱动程序中的 mutex gUartDrvObj 是否会导致某些潜在的意外行为? 比如当 uart5在中断模式/轮询模式下通信但收到一些错误时、调试 UART 无法打印?

谢谢!

Dazong

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

    您好!

    感谢您的耐心、因为这是周末、现在就对您的问题进行评论。

    Unknown 说:
     如果我们逐个初始化驱动程序中的 mutex gUartDrvObj 是否会导致某些潜在的意外行为? 就像 uart5在中断模式/轮询模式下通信但出现一些错误时、调试 UART 将无法打印?[/QUOT]

    请允许我花一点时间来研究实施情况并对其提出意见。

    此致、

    Vaibhav

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

    您好!

    以下是我的评论。

    [quote userid="628999" url="~/support/processors-group/processors/f/processors-forum/1484190/tmds62levm-question-about-uart-init-for-rtos-sdk uart5在中断模式/轮询模式下通信但遇到一些错误时、调试 UART 无法打印?

    我的初步答案是否定的、理由应该是没有问题的

    /*创建实例锁定*/
    Status = SemaphoreP_structMutex (&object->lockObj);

    由于创建了单独的实例锁定、因此 UART 的多个实例之间没有重叠。

    检查这一点的好方法是创建一个测试用例、其中一个 UART 发生故障、而另一个 UART 持续运行。

    为了对此进行测试、您需要在两个不同的线程上创建两个 UART 实例、因此可以是多线程应用程序、一旦完成、您就可以检查是否相同。

    此致、

    Vaibhav