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.

[参考译文] TDA4VH-Q1:在 PDK.11.00.00.21 - TDA4VH-Q1 的 UART 驱动程序中双重 CR 替换

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1590839/tda4vh-q1-double-cr-replacement-in-uart-driver-of-pdk-11-00-00-21---tda4vh-q1

器件型号: TDA4VH-Q1

您好:

我们观察到 MCU UART 日志中有一个错误、当在 Windows 中查看时、会在每个日志消息后显示一个双换行符。 经过一些调查、我们看到在 PDK UART 驱动程序中、从 LF 到 CR LF 的更正了两次。 因此、每个 LF 都更正为 CRLF、然后在 Windows 中更正为 CRLF CRLF。

板:J784s4 定制板
pdk.11.00.00.02

更换 1.
ti-pdk/pdk_j784s4/packages/ti/drv/uart/uart/uart_stdio.c:src

if ((char) '\n' == *bufPtr)
{
/* Ensuring applicability to serial console.*/
UART_putc(((uint8_t)('\r')));
UART_putc(((uint8_t)('\n')));
}
else
{
UART_putc((uint8_t) *bufPtr);
}

 

更换 2.
ti-pdk/pdk_j784s4/packages/ti/drv/uart/v1/uart_v1.c src:1347

if ((object->params.writeDataMode == UART_DATA_TEXT) && (*buffer == ((uint8_t)('\n'))))
{
if (UFALSE == UART_charPut_v1(hwAttrs, ((uint8_t)('\r')), &timeout))
{
timeoutErr = UTRUE;
}
else
{
count++;
}
}

if (UFALSE == timeoutErr)
{
if (UFALSE == UART_charPut_v1(hwAttrs, *buffer, &timeout))
{
timeoutErr = UTRUE;
}

调用栈

Callstack.png

您能否确认这是一个错误、如果是、请计划修复它?

您好、
Daniel

 

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

    尊敬的 Daniel:

    感谢您提请我们注意这一点。 我们从未在 Windows 上注意到这一点、因为我们主要在 Linux 上验证 SDK。 让我再深入探究一下。

    谢谢、

    Neehar

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

    尊敬的 Daniel:

    您能否确认这是一个错误、如果是、请计划修复它?

    谢谢这个信息,我相信这是一个错误的驱动程序。 我会将此问题提交给开发团队、并在下一个版本中实施修复。

    谢谢、

    Neehar