am5728开启uart0接口通讯
Posted nongqingpengzju
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了am5728开启uart0接口通讯相关的知识,希望对你有一定的参考价值。
最近在调试开启ttyS0接口,也就是开启UART1,为该管教配置驱动,但是东修西改就是没办法解决似乎一直没有改到点子上,,究竟需要修改的是哪个设备树和生成设备树的具体名称是什么,怀疑是设备树文件加载不对的问题。
这几天一直在郁闷设备树加载的问题:我的系统究竟在加载那个设备树,在SD卡中/rfoot/boot文件中有那么多的设备树文件,究竟是那个,而且我uboot编译使用的是am57xx_evm_nodt_defconfig配置项,也就是没有设备树的意思,这又是什么意思。
那就想办法验证一下具体是哪个设备树,把/rfoot/boot中的设备树文件全删除掉,然后启动内核,这样应该就会提示找不到具体设备树文件了,就能确定加载的是哪个设备树了,删除前先备份所有的设备树文件,然后启动,提示如下:
U-Boot 2016.05 (Apr 09 2018 - 23:09:39 +0800)
CPU : DRA752-GP ES2.0
Board: UNKNOWN(BeagleBoard X15?) REV UNKNOWN
I2C: ready
DRAM: 2 GiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
reading uboot.env
** Unable to read "uboot.env" from mmc0:1 **
Using default environment
SCSI: SATA link 0 timeout.
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst
scanning bus for devices...
Found 0 device(s).
Net: <ethaddr> not set. Validating first E-fuse MAC
Could not get PHY for cpsw: addr 1
cpsw
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
reading boot.scr
** Unable to read file boot.scr **
reading uEnv.txt
** Unable to read file uEnv.txt **
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
3476768 bytes read in 180 ms (18.4 MiB/s)
** File not found /boot/am57xx-beagle-x15.dtb ** //设备树文件加载错误提示
Kernel image @ 0x82000000 [ 0x000000 - 0x350d20 ]
Starting kernel ...
所以,系统加载的是am57xx-beagle-x15.dtb文件,之前一直在生成什么鬼设备树文件,也就无效了,所以从备份好的设备树文件中将该设备树文件和设备树镜像文件拷贝到rootfs/boot/中
[email protected]:~/Desktop$ sudo cp am57xx-beagle-x15.dtb devicetree-zImage-am57xx-beagle-x15.dtb /media/nqp/rootfs/boot/
然后再修改与生成的am57xx-beagle-x15.dtb文件所需的文件。
第一个文件:am57xx-beagle-x15.dts
在&dra7_pmx_core {}中添加uart1的管教配置。
myuart1_pins_default: myuart1_pins_default {
pinctrl-single,pins = <
DRA7XX_CORE_IOPAD(0x37E0, PIN_INPUT | MUX_MODE0)
DRA7XX_CORE_IOPAD(0x37E4, PIN_INPUT | MUX_MODE0)
>;
};
因为am57xx-beagle-x15.dts中#include "am57xx-beagle-x15-common.dtsi"文件
所以看看该文件是否需要修改,可知该文件为节点时能文件,所以时能uart1接口。
&uart1 {
status = "okay";
interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
<&dra7_pmx_core 0x3e0>;
};
主要修改这两个文件,其他的别的设备树文件,修改了也没有用,简直了。
清除一下以前的内核配置文件和生成文件
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
在内核编译中使用的是tisdk_am57xx-evm_defconfig配置文件,因为我们的系统声卡驱动会影响内核启动,所以需要将tisdk_am57xx-evm_defconfig文件中的
sound配置项注销掉。
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am57xx-evm_defconfig
生成.config文件
然后编译内核镜像
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
并生成am57xx-beagle-x15.dtb设备树,将
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am57xx-beagle-x15.dtb
然后将该设备树和内核镜像拷贝到rootfs/boot/中,上电启动系统。
am57xx-evm login: root
[email protected]:~# cd /proc/tty/driver
[email protected]:/proc/tty/driver# ls-l
-sh: ls-l: command not found
[email protected]:/proc/tty/driver# ls -l
-r--r--r-- 1 root root 0 Mar 29 21:01 serial
[email protected]:/proc/tty/driver# cat serial
serinfo:1.0 driver revision:
0: uart:8250 mmio:0x4806A000 irq:299 tx:0 rx:0 DSR //uart0接口已经被初始化成功,并加载了8250的串口驱动。
1: uart:unknown port:00000000 irq:0
2: uart:8250 mmio:0x48020000 irq:300 tx:8774 rx:70 RTS|DTR|DSR
3: uart:unknown port:00000000 irq:0
4: uart:unknown port:00000000 irq:0
5: uart:unknown port:00000000 irq:0
6: uart:unknown port:00000000 irq:0
7: uart:unknown port:00000000 irq:0
8: uart:unknown port:00000000 irq:0
9: uart:unknown port:00000000 irq:0
[email protected]:/# dmesg | grep "ttyS"
[ 0.000756] WARNING: Your ‘console=ttyO2‘ has been replaced by ‘ttyS2‘
[ 0.578981] 4806a000.serial: ttyS0 at MMIO 0x4806a000 (irq = 299, base_baud = 3000000) is a 8250 //已经开起来
[ 0.579799] console [ttyS2] disabled
[ 0.579826] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 300, base_baud = 3000000) is a 8250
[ 1.445272] console [ttyS2] enabled
其中uart0的管脚映射可参考:https://blog.csdn.net/a249093278/article/details/79662477
心类
有问题可以咨询 QQ748496426群
以上是关于am5728开启uart0接口通讯的主要内容,如果未能解决你的问题,请参考以下文章