串口读取失败

系统开机时启动程序读串口数据,开始正常,能够读到数据,几十秒后读取函数一直返回0,此时查看内核日志信息,报错“tegra-gpcdma 2600000.dma: DMA pause timed out”和“pwm-tegra-tachometer 39c0000.tachometer: Tachometer Overflow is detected”,请问是什么原因造成的?
log.txt (77.7 KB)

Hi 1472619047,

Are you using the devkit or custom board for AGX Xavier?
Waht’s your Jetpack version in use?

It seems there’s issue about DMA controller.
Do you have fan on your board?

Which UART interface are you using?

不是,载板是我们自己设计的;
版本是32.5.1;
载板上是有风扇的;
UART用的serial0

R32.5.1 is quite an old release.
Could you help to verify with latest R32.7.4 or R35.3.1?

Or try to disable dma@2600000 or “tachometer@39c0000” node in device tree to debug which may affect your serial communication.

串口通信是必须依赖dma吗?

soc上出来的UART接口支持的波特率最高是多少?

You could check the serial node you are using, there should be some configurations for dma.

It depends on which UART you are using.
Which UART interface are you using?

现在用的UART是serial0

Do you mean the following port?

serial0 = &uarta;
uarta: serial@3100000 {

If yes, you could run the following command to check its max clock rate.

$ sudo cat /sys/kernel/debug/bpmp/debug/clk/uarta/max_rate

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.