此文所讲述的串口通信是基于NVIDIA TX2开发板的,所用的串行接口是开发板的J17模块,在Linux系统中显示的文件设备为”/dev/ttyTHS2”。
关于TX2的J17模块的具体串口通讯代码,请查看本人博客基于NVIDIA TX2的串口(UART1_J17)通讯_追捕的风的博客-优快云博客。下面是关于编译设备树来支持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