目录
1 硬件情况
UART1 | ----> | UART3 |
PG6 | PB6 | |
PG7 | PB7 |
图1
如图1所示,源码串口是UART1,我们需要修改为UART3
2 修改
总共需要修改几个地方:boot0、uboot、kernel、rootfs
以100ask_pro开发板为例
2.1 boot0
nano device/config/chips/t113/configs/100ask/sys_config.fex
注释uart1,新增uart3
图2中,PB07<7>这个7对应的就是芯片数据手册function7复用功能号UART3如图3所示
图2
图 3
2.1 uboot
2.1.1 配置文件修改
查看配置文件位置,如图4所示
nano device/config/chips/t113/configs/100ask/BoardConfig.mk
图 4
nano lichee/brandy-2.0/u-boot-2018/configs/sun8iw20p1_uart3_defconfig
打开该文件,如图5所示的INDEX+1表示用到的串口,uart3 +1 = 4
图 5
这里需要注意,如果这一步未修改则uboot的log就不会显示,如何确定是修改哪个配置文件
通过mboot,可以看到用哪个配置文件,如果提示如下,则说明使用的是Tina-Linux\lichee\brandy-2.0\u-boot-2018\configs\sun8iw20p1_defconfig
我们可以直接修改.config文件
通过搜索lichee\brandy-2.0\u-boot-2018\.config配置文件就可以搜索到CONFIG_CONS_INDEX
uart3则=4
也可以菜单配置,cd lichee/brandy-2.0/u-boot-2018
make menuconfig,这里配置的则是uboot的菜单,Device Drivers->Serial drivers,UART used for console
2.2 kernel
2.2.1 内核设备树
nano device/config/chips/t113/configs/100ask/board.dts
&pio 节点,修改uart3如图6所示
图 6
注意搜索PB6看看有没有被其它功能复用,有就屏蔽
&uart3节点启用,uart1禁用
图 7
2.2.2 环境变量
修改env.cfg文件,因为该文件中存放了启动的环境变量
nano device/config/chips/t113/configs/100ask/env.cfg
图 8
earlyprintk变量指定了启动时日志打印的设备,第一个参数未对应设备,第二个参数设备地址,console指定了串口和波特率,设备地址通过查看t113-i_uaer_mannual手册memort mapping可确认,如图9所示
图 9
2.2.3 修改Kernel的配置文件
通过make kernel_menuconfig指令配置内核,找到kernel hacking->Kernellow-level debugging functions,修改寄存器地址如图10所示,地址看图9所示
图 10
2.3 roofs
这里就是修改文件系统的配置文件,最终生成在系统的/etc/路径下
这一步最关键,直接影响终端是否能用,前面的只是boot和内核打印log的配置,未配置这一步的话启动后终端就无法使用了
如果板级文件夹下没有inittab文件则就修改common下的就好,缺点是不同板子没法不同修改
nano target/allwinner/t113-common/base-files/etc/inittab
图11 中askfirst表示进入终端时首次是否需要按enter,把askfirst改为respawn就可以去掉了 Please press Enter to activate this console
图 11
正确的做法是将inittab复制到板级文件夹下,这样子lunch切换时就会跟随板子变化串口
cp target/allwinner/t113-common/base-files/etc/inittab target/allwinner/t113-100ask/base-files/etc/
修改板级文件:nano target/allwinner/t113-100ask/base-files/etc/inittab
3 编译
mboot,注意uboot的更改需要使用mboot编译,经测试直接使用make的话uboot不会更新
make
pack