ZHCAGC6 August 2026 AM625
基于SDK11.1对PRU的高速串口进行应用和实验验证,首先需要在原生的kernel中添加PRU串口的驱动,使用以下命令和对应补丁进行应用。
host# patch -p1 < pru-tty-driver-v6.12-20251204.diff
host# make linux
host# sudo DESTDIR=/media/tony/root make linux_install
# ln -sf PRU_UART_12Mb.out.v1.1 am62x-pru0-fw
# ls /dev/ttyPRU*
/dev/ttyPRU0 /dev/ttyPRU1 /dev/ttyPRU2 /dev/ttyPRU3
root@am62xx-evm:~# echo start > /sys/class/remoteproc/remoteproc2/state
[ 703.729726] remoteproc remoteproc2: powering up 30074000.pru
[ 703.737406] remoteproc remoteproc2: Booting fw image am62x-pru0-fw, size 25852
[ 703.744705] remoteproc remoteproc2: remote processor 30074000.pru is now up
现在可以运行串口应用程序向这些 UART 节点写入数据了,目前只需使用 open() 和 write() 函数就可以实现使用PRU的高速串口发送数据。以下是使用Open和Write进行发送数据的参考代码。
write(fp0, data, data_len);
fp0 = open("/dev/ttyPRU0", O_RDWR | O_NONBLOCK);
图 3-3 是通过Linux侧随机生成数据发送来验证整体从应用到底层数据通路,并使用逻辑分析仪进行测量得到的波形。
图 3-3 Linux随机串口数据波形