
【适用范围】 该问题适用于R16+Tina2.1 【问题现象】 修改输出的打印口后无法烧录, 烧录软件一直没有进度。 【复现步骤】 将sys_config.fex 中对应的[uart_para] [force_uart_para],修改为非 uart 0 打印口, 然后pack ,最后烧录发现出现问题。 下图以修改 uart 3 作为打印口为例:

【原因分析】 烧录过程中fes1 代码中, 和 启动过程中 boot0 代码中的 sunxi_serial_init 的函数有问题,原来的代码默认就是使用 uart0 可以正常工作。 1. fes1 和 boot0 代码对于串口的初始化: //sunxi_spl/boot0/main/boot0_main.c main()->sunxi_serial_init(BT0_head.prvt_head.uart_port,xxxxxxxxx, 6 ); //sunxi_spl/boot0/main/boot0_main.c main()->sunxi_serial_init(BT0_head.prvt_head.uart_port,xxxxxxxxx, x ); //sunxi_spl/fes_init/main/fes1_main.c main()->sunxi_serial_init(BT0_head.prvt_head.uart_port,xxxxxxxxx, x ); 2. 有问题的sunxi_serial_init 代码 //uboot-2011.09/arch/arm/cpu/armv7/sun8iw5/spl/serial_spl.c

如果打印口没有指定为 0 的话,就错误返回了! 【解决办法】 1. 修改 对应的sys_config.fex 文件 + env-3.4.cfg 文件 sys_config.fex

env-3.4.cfg

3 修改 对应的 serial_spl.c 中的 sunxi_serial_init 错误代码

4. 重新编译uboot 中的fes1 + boot0 的bin文件,更新对应目录的bin文件

【验证方法】 修正后,重新编译-打包-烧录-启动 , uboot + kernel 打印正常。