场景二:使用UART3,需要从UART0改为UART3(PB6,PB7)
- 修改
sys_config.fex
(BOOT0与Uboot的串口)
sys_config.fex
的路径是 device/config/chips/t113/configs/evb1/sys_config.fex
中的 uart_debug_port
修改前:
[uart_para]
uart_debug_port = 0
uart_debug_tx = port:PF02<3><1><default><default>
uart_debug_rx = port:PF04<3><1><default><default>
修改后
[uart_para]
uart_debug_port = 3
uart_debug_tx = port:PB06<7><1><default><default>
uart_debug_rx = port:PB07<7><1><default><default>
- 修改设备树(Linux使用的串口输出)
路径:device/config/chips/t113/configs/evb1/board.dts
修改前
uart3_pins_a: uart3_pins@0 {
pins = "PC6", "PC7";
function = "uart0";
drive-strength = <10>;
allwinner,muxsel = <4>;
bias-pull-up;
};
uart3_pins_b: uart3_pins@1 {
pins = "PC6", "PC7";
function = "gpio_in";
};
&uart0 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart0_pins_a>;
pinctrl-1 = <&uart0_pins_b>;
status = "okay";
};
&uart3 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart3_pins_a>;
pinctrl-1 = <&uart3_pins_b>;
status = "disabled";
};
修改后
uart3_pins_a: uart3_pins@0 {
pins = "PB6", "PB7";
function = "uart0";
drive-strength = <10>;
allwinner,muxsel = <7>;
bias-pull-up;
};
uart3_pins_b: uart3_pins@1 {
pins = "PB6", "PB7";
function = "gpio_in";
};
&uart0 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart0_pins_a>;
pinctrl-1 = <&uart0_pins_b>;
status = "disabled"; # 关闭UART0
};
&uart3 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart3_pins_a>;
pinctrl-1 = <&uart3_pins_b>;
status = "okay"; # 开启UART3
};
- 修改UBOOT CONSOLE INDEX
路径:brandy/brandy-2.0/u-boot-2018/configs/sun8iw20p1_defconfig
增加下列内容
CONFIG_SPECIFY_CONSOLE_INDEX=y
CONFIG_CONS_INDEX=4 # UART 3+1 = 4
- 修改启动bootargs
路径:device/config/chips/t113/configs/evb1/env.cfg
修改前
earlyprintk=sunxi-uart,0x02500000
initcall_debug=0
console=ttyS0,115200
修改后
earlyprintk=sunxi-uart,0x02500000
需要修改为 UART3 的地址,查阅手册可知为 0x02500C00
earlyprintk=sunxi-uart,0x02500C00
initcall_debug=0
console=ttyS3,115200
注意 ARM 平台还需要设置Kernel,如下:
make kernel_menuconfig
找到 Kernel low-level debugging functions,修改寄存器地址