在帖子《 只保留eth1网口入坑出坑记录》 基础上,需要uart2~uart8串口的输出,修改了uEvn.txt为:
重启后,开发板上可以显示出串口号:
根据官方原理图测试所有uart:
发现uart2~uart5均可以正常收发,但是uart6~uart8死活不行。
然后就有了以下的操作:
1.打开设备树源码位置:
查看imx-fire-uart6-overlay.dts源码,发现源码包含了3个头文件,也一起打开:
2.根据对比,发现uart6对应的引脚应该是:
很显然复用的引脚与我们想要的引脚不一致,这里我们尝试修改引脚标识
通过搜索源码对应的头文件,找到如下关键字
3.疑问:
这里就有一个疑问了:引脚是找到了,但是引脚后面的地址0x1b0b1是什么含义呢?
必应搜索找答案,我从不用百度!
看了后豁然开朗,然后依葫芦画瓢,直接修改UART6试试
4.修改源码:
顺便修改uart7/uart8的配置
5.编译设备树
在内核源码顶层目录输入: makeARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- npi_v7_defconfig makeARCH=arm -j4 CROSS_COMPILE=arm-linux-gnueabihf- dtbs
编译文件后,拷贝ebf_linux_kernel-ebf_4.19.35_imx6ul/arch/arm/boot/dts/overlays/下的生成文件到目标板替换,并重启,查看结果
目标板子驱动目录为/usr/lib/linux-image-4.19.35-imx6/overlays/ 我们先拷贝到/home/ubuntu目录下 然后用管理员模式cp指令拷贝即可
6.断电重启,测试看结果
这里每次发送完成后对应更换串口引脚,引脚示意图为: 7.完毕! 附上修改的文件包:
|