TI中文支持网
TI专业的中文技术问题搜集分享网站

[FAQ] Uboot启动调试建议

很多客户遇到uboot启动的问题,特别是自己制作的板子,下面给出几点调试的方法。

  1. 最有效的方法是使用JTAG和CCS来调试启动代码
  2. 在板子没有JTAG的情况下,可通过增加打印信息来定位。
  • 配置早期debug  uart
    • 由于驱动以及其他依赖因素,通常只有在SPL顺利启动console uart才会有打印输出信息,因此很难定位调试早期启动代码例如PMIC配置,clock配置,DDR配置等。
    • 为了使启动更顺利推荐在开发阶段配置uboot的debug UART,这样在early_system_init就会使能uart
    • 通常debug UART要与console uart相同
    • 在使用相应debug  UART前请注意配置pinmux

board.c -> set_uart_mux_conf

    • 使能debug UART

在Kconfig中添加以下配置参数(以UART0为例):

CONFIG_DEBUG_UART_BASE=0x44e09000

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("%s: %d:\n", __func__, __LINE__);
Annie Liu:

我们建议您在发布新问题之前先搜索 E2E支持论坛,E2E支持论坛已经拥有数十万个已得到解答的话题。  这通常是解决问题的最快方法。

赞(0)
未经允许不得转载:TI中文支持网 » [FAQ] Uboot启动调试建议
分享到: 更多 (0)