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.

[参考译文] AM5728:DSP 上的 OpenCL 中断 UART

Guru**** 2551910 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/620601/am5728-opencl-on-dsp-breaks-uart

器件型号:AM5728

你好。 我们在定制电路板上使用 AM5728与 ti-processor-sdk-linux-am57xx-evm-03.03.00.04搭配使用、并且/dev/ttyS0和 DSP 出现问题。

UART 器件树部分:

&draTMX_CORE{

uart1_PINS_DEFAULT:pinmux_uart1_PINS_DEFAULT{
pinctrl-single、PIN=<
DRA7XX_CORE_IOPAD (0x37E0、PIN_INPULLUP 上拉| MUX_MODE0)/* uartx_RXD *=< DRA7XX_CORE_IN_OUTPLUM0*








、0x37E8_OUTPLUG_RE_OUTPLUM0*;* 0x37DIU_IN_U_OUTPLUG_U_U_OUTPLUM0*++++++++++ 0x37DIODIODIO8_INU_U_U_INUARTON_INU_UARTON_OUTPLUM0*+
++++++++++++++++ 0*引脚0x37DIODIODIODIODIODIODIO0*++++++++引脚0x37UARTON_OUTPLUG_OUTPLUG_OUTPLUG_OUTPLU


uart1{
status ="确定";
pinctrl-names ="默认值";
pinctrl-0 =< uart1_PINS_DEFAULT>;
}

;uart8{
status ="确定";
pinctrl-names ="默认值";
pinctrl-0 =< uart8_pins_default>;
};

当我尝试在 DSP uart1上激活 OpenCL 时,TX 中断,但 Rx 工作(我看到输入数据为 cat /dev/ttyS0,但无法在引脚上看到传输的数据)。

即、我运行:

Cat /dev/random >>/dev/ttyS0

并查看 TX 上的随机数据。 没关系。

但是、当我使用 OpenCL 运行某些软件时(示例)、

/vecadd_openmp

UART0 TX 保持为1、不发送新数据。

如果我重新启动"cat /dev/random >>/dev/ttyS0 "、它将运行到新的运行 OpenCL。

如何使 UART 和 DSP 正常工作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    确保 DSP 上没有任何软件会触摸或更改引脚复用。 软件示例可能会更改多路复用器设置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在两个加载了 dra7-dsp1-fw.xe66.OpenCL-monitor 的 DSP 上、dra7-dsp2-fw.xe66.OpenCL-monitor
    现在、我使用 ti-processor-sdk-linux-am57xx-evm-03.03.00.04/example-applications/OpenCL-example-1.1.12.0/null 示例检查了它、并复制了错误。
    我创建2个与电路板的 SSH 连接:
    首先:
    root@am57xx-EVM:~# cat /dev/random >>/dev/ttyS0

    在此之后,我通过 UART->USB 适配器看到随机数据
    在第二次运行时:
    root@am57xx-EVM:~#./null
    OpenCL 运行时会将器件程序延迟加载到上
    首先从程序中排队内核、然后是经过的时间
    整体而言、第一个排队的时间将更长、以应对
    加载内核。 此外、内核的后续 enqueue 将会
    还可能受益于器件上的热缓存。

    已用(带负载):813 usecs
    已用(无负载):287 us
    空内核执行:要提交的队列:2us
    空 Kernel Exec:提交至 Start:87us
    空内核执行:开始到结束:165us

    已用(无负载):261 us
    空内核执行:要提交的队列:2us
    空 Kernel Exec:提交至 Start:68us
    空内核执行:开始到结束:163us

    已用(无负载):256 us
    空内核执行:要提交的队列:2us
    空 Kernel Exec:提交至 Start:61us
    空内核执行:开始到结束:166us

    已用(无负载):256 us
    空内核执行:要提交的队列:1us
    空 Kernel Exec:提交至 Start:63us
    空内核执行:开始到结束:165us

    已用(无负载):259us
    空内核执行:要提交的队列:2us
    空内核执行:提交至开始:73us
    空 Kernel Exec:开始到结束:158us

    完成!
    root@am57xx-EVM:~#

    从这个时刻起、UART 就不会传输新数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    另请调用"dsptop"会导致"cat /dev/random >>/dev/ttyS0 "停止工作(TX 上没有新数据)、然后重新启动"cat"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Konstantin、

    我能够在运行 OpenCL 时重现 UART 暂停问题、怀疑 ARM/Linux 中的 UART 驱动程序与 DSP/RTOS 中的 OpenCL 监视器之间存在特定于资源的 EDMA 区域冲突。 将更新您的分辨率。

    此致、
    Garrett