结贴,问题解决了
解决方法:最原始最暴力方法,重新U-BOOT
问题:USART0已正常通讯 ,现要想增加USART1 和USART2
按教程
首先在dts里使能UART:
sun8i-v3s.dtsi:
uart0_pins_a: uart0@0 { pins = "PB8", "PB9";function = "uart0";bias-pull-up; };
uart1_pins_a: uart1@0 { pins = "PE21", "PE22";function = "uart1";bias-pull-up; };
uart2_pins_a: uart2@0 { pins = "PB0", "PB1";function = "uart2";bias-pull-up; };
sun8i-v3s-licheepi-zero.dts:
&uart0 { pinctrl-0 = <&uart0_pins_a>;pinctrl-names = "default";status = "okay"; };
&uart1 { pinctrl-0 = <&uart1_pins_a>;pinctrl-names = "default";status = "okay"; };
&uart2 { pinctrl-0 = <&uart2_pins_a>;pinctrl-names = "default";status = "okay"; };
在u-boot中开始编译
cd u-boot
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_defconfig
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j2
编译不通过,LOG如下
OBJCOPY u-boot-nodtb.bin
SHIPPED dts/dt.dtb
OBJCOPY u-boot.srec
SYM u-boot.sym
CAT u-boot-dtb.bin
COPY u-boot.dtb
COPY u-boot.bin
MKIMAGE u-boot.img
MKIMAGE u-boot-dtb.img
CC spl/common/spl/spl.o
LD spl/common/spl/built-in.o
CC spl/lib/display_options.o
LD spl/lib/built-in.o
LD spl/u-boot-spl
OBJCOPY spl/u-boot-spl-nodtb.bin
COPY spl/u-boot-spl.bin
MKSUNXI spl/sunxi-spl.bin
BINMAN u-boot-sunxi-with-spl.bin
binman: Device tree 'u-boot.dtb' does not have a 'binman' node
make: *** [u-boot-sunxi-with-spl.bin] 错误 1
root@wolf-ubuntu:/home/wolf/u-boot#
我还需要修改那个地方才能u-boot通过编译
ARCH=arm make menuconfig这步我没执行,是不是这个需配置,在那项中配置
谢谢
最近编辑记录 xblzy0423 (2020-04-13 12:32:27)
离线
正常增加串口不需要重新编译uboot,只需要在内核的dts里面按你这个增加后,编译一次dtb即可。然后替换目标文件系统的dtb
离线
sun8i-v3s-licheepi-zero.dts 47行附近有语法错误
离线
正常增加串口不需要重新编译uboot,只需要在内核的dts里面按你这个增加后,编译一次dtb即可。然后替换目标文件系统的dtb
我只会重新编译uboot
不会编译一次dtb
下面这样对吗
arm CROSS_COMPILE=rm-none-linux-gnueabihf- sun8i-v3s-licheepi-zero.dtb
最近编辑记录 xblzy0423 (2020-04-13 10:28:17)
离线
sun8i-v3s-licheepi-zero.dts 47行附近有语法错误
语法错误我修改了
还是不通过,log信息我更新了
最近编辑记录 xblzy0423 (2020-04-13 10:22:59)
离线
https://lists.denx.de/pipermail/u-boot/2018-June/330701.html
@@ -93,12 +116,39 @@ def Binman(options, args):
try:
tools.SetInputDirs(options.indir)
tools.PrepareOutputDir(options.outdir, options.preserve)
- dtb = fdt.FdtScan(dtb_fname)
+
+ # Get the device tree ready by compiling it and copying the compiled
+ # output into a file in our output directly. Then scan it for use
+ # in binman.
+ dtb_fname = fdt_util.EnsureCompiled(dtb_fname)
+ fname = tools.GetOutputFilename('u-boot-out.dtb')
+ with open(dtb_fname) as infd:
+ with open(fname, 'wb') as outfd:
+ outfd.write(infd.read())
+ dtb = fdt.FdtScan(fname)
+
+ # Note the file so that GetFdt() can find it
+ fdt_files['u-boot.dtb'] = dtb
node = _FindBinmanNode(dtb)
if not node:
raise ValueError("Device tree '%s' does not have a 'binman' "
"node" % dtb_fname)
+
错误在 python 脚本, 你可以跟踪一下。
离线
你是在uboot中用uart1还是在linux中用?
离线
你是在uboot中用uart1还是在linux中用?
linux中了
板子为zero v3s
离线
那u-boot不用改uart部分,应该去linux里面修改。
+1 应该去linux的dts里面改,然后编译dts生成dtb文件,然后用新的dtb文件生成新的镜像文件。
编译dts就是在linux目录执行
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
最近编辑记录 阿黄 (2020-04-13 12:17:11)
离线
+1 应该去linux的dts里面改,然后编译dts生成dtb文件,然后用新的dtb文件生成新的镜像文件。
编译dts就是在linux目录执行
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
谢谢了,懂了
离线
结贴,谢谢大家
离线