一. 使用debug uart的原因
由于驱动以及其他依赖因素,通常只有在SPL顺利启动console uart才会有打印输出信息,因此很难定位调试早期启动代码例如PMIC配置,clock配置,DDR配置等。为了使启动更顺利推荐在开发阶段配置uboot的debug UART,这样在early_system_init就会使能uart。
通常debug UART要与console uart相同,且在使用相应debug UART前请注意配置pinmux
二. 使能debug uart
在对应板上的 /uboot/configs/xxx_defconifg中添加如下选项,此处以 uart0为例,硬件平台(am5728)
CONFIG_DEBUG_UART_BASE=0x4806a000
CONFIG_DEBUG_UART_CLOCK=48000000
CONFIG_DEBUG_UART=y
CONFIG_DEBUG_UART_OMAP=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_DEBUG_UART_ANNOUNCE=y
如果使用的是其他UART,需要修改 CONFIG_DEBUG_UART_BASE 的地址,可以通过参考手册来查看相关UART的及地址。
在UBOOT源码中已经包含了许多debug()调试信息,因此可以在源文件的顶部添加 #define DEBUG 来获取更多的调试信息。除此之外,可添加打印语句 printf() 跟踪执行代码。