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.

[参考译文] Starterware/TMS320C6748:uartprintf 很慢

Guru**** 2538930 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/592802/starterware-tms320c6748-uartprintf-is-slow

器件型号:TMS320C6748

工具/软件:Starterware

您好、香榭丽舍

客户发现 uartprintf 函数导致了 EMAC 损耗包。  波特率为115200、发送4个字节、理论上 uartprintf 将消耗40us。 但实际上、它将消耗1ms 的时间。  

谢谢。

Rgds
闪亮

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

    我已通知 RTOS 团队。 反馈将直接发布在此处。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请注意、Starterware UART_prints 使用 UARTCharPut、这是一种阻塞功能、因此效率很低、因为该功能会无限期地检查发送器 FIFO (非 FIFO 模式下的 THR 寄存器)是否为空。 如果发现空、则将字节写入 THR 寄存器。

    一个尝试的选项是用 UARTCharPutNonBlocking 替换 UARTCharPut、后者会在 THR 为空时仅检查 THR、否则会向其写入一个字节、然后返回 False /错误。 另一个选项是集成 EDMA、用于写入 UART 以加快速度。 如果您有 EMAC 流量和 UART、我们通常建议您在优先级较低的任务中使用带有调度程序的操作系统、并打印 UART、以便 CPU 能够跟上 EMAC 数据包的发展、并且不会因 UART 任务而被阻止。 我们正在为此器件刷新 SDK、并将在2017年第2季度末提供一个具有 EDMA 实现的 LLD 驱动程序。 但是、这不会基于 Starterware、而是将裸机 CSL 驱动程序与 TI RTOS 结合使用。

    此致、
    Rahul