UART使用参考
1. 概述¶
本文主要介绍UART以及其使用,包括简单的原理以及多路串口的配置说明,方便配合用户端使用多路串口。
2. 关键词¶
UART ttyS0 ttyS1 ttyS2
3. UART dts配置¶
uart与具体的pad配置流程如下:
-
PADMUX配置
查找TMUX表找到要复用的GPIO和对应的复用mode,下面以PAD_PM_UART_RX1和PAD_PM_UART_TX1复用成UART1为例,如下图可以看到需要复用的mode是uart1_mode7。
在padmux.dtsi中配置mode格式如下图的,"<>"中第一个值为PAD_Name,第二个值为要设置的mode,第三个值为PAD在该mode下对应的功能。
如上图中配置完成后,请检查是否有其他的PAD也设置成了需要设置的mode,重复设置会引起冲突导致配置padmux失效,如果冲突的mode不需要使用则可以将其注释掉,如果需要使用,请重新选择mode。同时检查相同PAD是否有复用成其他mode,如果有则会存在冲突,GPIO只会被设置成高优先级的复用。
-
节点配置
打开mercury6.dtsi可以找到下图中内容,aliases中的serialx对应在系统中/dev/下查看到的ttyS0-ttyS4,通过修改aliases中内容,可以修改ttyS节点对应的uart。确保使用的uart中的status = "ok"。如下图中配置,我们使用的uart1对应系统中/dev/ttyS1。
修改完重新编译kernel,烧录到板子上。完成到这步,uart1已经可以正常使用,若要开启其他几个uart,参考上述步骤去开启即可。
对应配置文件说明如下:
在板子中查看uart设备相关信息可直接cat ms_uart文件,如下:
也可以通过命令行查看如下:
4. 测试UART¶
-
在网上dump一个开源的测试程序,点击获取参考程序。
按照如下方式下载即可:
下载后的文件如linux-serial-test.c
-
编译下载的serial_test.tar.gz
包含makefile以及serial_test.c档,然后操作如下步骤:
tar xzvf serial_test.tar.gz cd serial_test make
然后去bin目录下取可执行文件serial_test
具体操作如下:
对应pc端的连接
-
将服务器mount的一个目录mount到板子上
/home/gavin.ran/gavin_demo/serial_test
用在board上执行:
mount -t nfs -o nolock 172.21.28.81:/home/gavin.ran/gavin_demo /system/vendor
然后
cd /system/vendor/serial_test
进行 测试。