RV1126 调试串口更换
根据项目需求 在结构设计完导致调试串口无法使用 因此采取更换可使用的串口。在网上看了许多博客最后都是导致我的系统启动失败了。根据阅读文档 Rockchip_Developer_Guide_UART_FAQ_CN 下面有三个步骤:
1. ddr loader 修改
首先我们要知道自己板子用的是哪个MINIALL.ini。
因此在单独编译uboot 执行 ./build.sh uboot
打印会出现 pack loader ok.(rv1126_spl_loader_v1.08.108.bin)(0.00) pack loader okay! Input: /home/alientek/work/rkbin/RKBOOT/RV1126MINIALL.ini
所以我的板子对应的ini 就是这个文件了 进去看看
FlashData=bin/rv11/rv1126_ddr_924MHz_v1.08.bin
FlashBoot=bin/rv11/rv1126_spl_v1.08.bin
原来是rv1126_ddr_924MHz_v1.08.bin 这个文件 找不到 find . -name rv1126_ddr_924MHz_v1.08.bin
下来我们将运行命令 到处这个.bin 文件 (如果以后还要修改的话建议 cp 一份备用)
ls rv1126_ddr_924MHz_v1.08.bin
rv1126_ddr_924MHz_v1.08.bin rv1126_ddr_924MHz_v1.08.bin_bak
我是做了备份的
下面就要进行导出了.
进入 rkbin/tools
目录下 可以看一下 ddrbin_tool_user_guide.txt
文件
首先先touch 一个 rv1126_ddr_924MHz_v1.08.bin
不然会出错
./ddrbin_tool -g gen_param.txt rv1126_ddr_924MHz_v1.08.bin
导出文件 你也可以看一下其中的内容
之后进入 ddrbin_param.txt
文件就行就该 注意 : 根据你自己的 去修改其他空的也不要管
uart id=1 // 对应的uartx x代表第几个 也就是你对应的ttySx 你的原理图的 uartx
uart iomux=1 // 比如你是uart1m1 则填写1 如果是 uart1m0 填0
uart baudrate=115200 //波特率
我就修改这三个
下来进行生成
./ddrbin_tool ddrbin_param.txt rv1126_ddr_924MHz_v1.08.bin
再把这个文件拷贝到 bin/rv11/ 目录下 。
最后一步直接编译 uboot 吧 u-boot目录下的 rv1126_spl_loader_v1.08.108.bin
烧录的时候替换掉那个MiniLoaderAll.bin
最后一个内核
chosen: chosen {
bootargs = "earlycon=uart8250,mmio32,0xfe670000 console=ttyFIQ0 xxxxxxxxxxx";
} 这个0xfe670000 就是uart3 的寄存器基地址
找到fiq-debugger节点,修改serial-id为3,修改UART3引脚复用配置。注意,同时需要将切换为打印串口
的UART3作为普通串口的节点禁用。
fiq-debugger {
compatible = "rockchip,fiq-debugger";
rockchip,serial-id = <3>;
rockchip,wake-irq = <0>;
/* If enable uart uses irq instead of fiq */
rockchip,irq-mode-enable = <1>;
rockchip,baudrate = <1500000>;
/* Only 115200 and 1500000 */
interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&uart3m0_xfer>;
status = "okay";
};
最后编译内核 烧录 解决