NVIDIA TX2的UART1(J17)工作为/dev/ttyTHS2

        此文所讲述的串口通信是基于NVIDIA TX2开发板的,所用的串行接口是开发板的J17模块,在Linux系统中显示的文件设备为”/dev/ttyTHS2”。

       关于TX2的J17模块的具体串口通讯代码,请查看本人博客基于NVIDIA TX2的串口(UART1_J17)通讯_追捕的风的博客-CSDN博客。下面是关于编译设备树来支持J17模块的。

      由于TX2需要装NVIDIA官方提供的系统,但是不同系统之间是有区别的。对于R28版本,我们可以通过命令ls /dev/ttyTHS*来查找到J17对应的文件描述符,从而可以进行后续的串口通讯工作。而对于R27版本的系统,我们是无法找到J17的文件描述符,从而也就无法进行串口通信。因此,对于R27版本的系统,我们需要对内核进行编译,使R17可以支持串口通信。具体方法如下:

1、首先要安装设备树命令

sudo apt install device-tree-compiler

2、然后将对应的dtb文件反编译成dts文件

sudo -s

cd /tmp

dtc -I dtb -O dts -o ext.dts /boot/tegra186-quill-p3310-1000-c03-00-base.dtb

3、在反编译的dts文件中修改串口设置

vim ext.dts

/serial@c28000                  //在vim使用此命令查找对应端口,用n可查找下一个对应结果

找到对应设备后,将status = "disabled"修改为status = "okay",然后进行保存。

4、然后将修改后的dts文件再次编译成dtb文件

dtc -I dts -O dtb -o /boot/modified_tegra186-quill-p3310-1000-c03-00-base.dtb ext.dts

5、修改/boot/extlinux/extlinux.conf文件

vim /boot/extlinux/extlinux.conf

FDT /boot/modified_tegra186-quill-p3310-1000-c03-00-base.dtb

这一行命令添加到extlinux.conf文件中的MENU LABEL这一行和LINUX这一行之间。

然后执行reboot命令,再次开机后执行命令ls /dev/ttyTHS*,这时候就应该会出现"/dev/ttyTHS2",则后面就可以进行串口通信。

你可能感兴趣的:(嵌入式,NVIDIA,TX2,UART,/dev/ttyTHS2)