• 全志芯片Tina Linux 修改 UART 引脚、UART端口 (2)


    场景二:使用UART3,需要从UART0改为UART3(PB6,PB7)
    1. 修改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>
    uart_debug_rx   = port:PF04<3><1>
    
    • 1
    • 2
    • 3
    • 4

    修改后

    [uart_para]
    uart_debug_port = 3
    uart_debug_tx   = port:PB06<7><1>
    uart_debug_rx   = port:PB07<7><1>
    
    • 1
    • 2
    • 3
    • 4
    1. 修改设备树(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"; 
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    修改后

    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
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    1. 修改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 
    
    • 1
    • 2
    1. 修改启动bootargs

    路径:device/config/chips/t113/configs/evb1/env.cfg

    修改前

    earlyprintk=sunxi-uart,0x02500000
    initcall_debug=0
    console=ttyS0,115200
    
    • 1
    • 2
    • 3

    修改后
    earlyprintk=sunxi-uart,0x02500000 需要修改为 UART3 的地址,查阅手册可知为 0x02500C00
    在这里插入图片描述

    earlyprintk=sunxi-uart,0x02500C00
    initcall_debug=0
    console=ttyS3,115200
    
    • 1
    • 2
    • 3

    注意 ARM 平台还需要设置Kernel,如下:

    make kernel_menuconfig 找到 Kernel low-level debugging functions,修改寄存器地址

    在这里插入图片描述

    RISC-V 不需要此操作

    原贴链接:https://bbs.aw-ol.com/topic/1673/
    全志在线开发者交流企鹅群(客服机器人24小时在线解答):498263967
    资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com
    全志及开发者最新动态可以关注全志在线微信公众号

  • 相关阅读:
    信息学奥赛一本通 1852:【08NOIP提高组】火柴棒等式 | 洛谷 P1149 [NOIP2008 提高组] 火柴棒等式
    安卓14通过“冻结”缓存应用程序腾出CPU,提高性能和内存效率
    [附源码]JAVA毕业设计高校学生社团管理(系统+LW)
    练[极客大挑战 2019]BuyFlag
    shell脚本之ftp命令
    netty系列之:channel,ServerChannel和netty中的实现
    Clickhouse相关 LSM
    大数据培训MapReduce常见错误及解决方案
    2023-2028年中国高纯度氢气市场投资分析及前景预测报告
    在Qt中,怎么获取到在mainwindow.ui文件中添加的控件
  • 原文地址:https://blog.csdn.net/weixin_43094346/article/details/127646202