am5728 是否支持aarch64_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:?? 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 = ,
;
};
主要修改這兩個文件,其他的別的設備樹文件,修改了也沒有用,簡直了。
清除一下以前的內核配置文件和生成文件
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群
原文:https://www.cnblogs.com/nongqingpengzju/p/8778011.html
總結
以上是生活随笔為你收集整理的am5728 是否支持aarch64_am5728开启uart0接口通讯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: quartus2管教锁定出不来_Quar
- 下一篇: 2d绘制 c# dx_C# DX 编程