如何在真实串口驱动还未加载的状况下调试uboot?

1. 先找出真实串口是什么型号linux

  1.1 怎么找?笔者提供两种方案:debug

  方案一: 若当前的板子支持dm,从uboot的dts找串口节点对应的compatible属性调试

  方案二: 从linux内核的dts找串口节点对应的compatible属性ip

  1.2 笔者当前的uboot不支持dm,因此笔者是从linux内核的dts中找到的it

    compatible="ns16550",因此笔者的板子硬件是ns16550这个ip配置

2. 配置选项硬件

  CONFIG_DEBUG_UART=y (在make menuconfig中使能此选项后,会出现配置使用哪一种串口、串口基地址、输入时钟、寄存器偏移等等可配置项)bug

  CONFIG_DEBUG_UART_NS16550=y (须要根据具体的串口ip选择哦)make

  CONFIG_DEBUG_UART_BASE = 0x21c0500 (须要根据具体的soc修改哦)co

  CONFIG_DEBUG_UART_CLOCK = CONFIG_SYS_CLK_FREQ / 2 (须要根据具体的soc修改哦)

  CONFIG_DEBUG_UART_SHIFT=0 (须要根据具体的soc修改哦)

3. 须要在调试以前调用debug_uart_init(),以下:

  #include <debug_uart.h>

  debug_uart_init();

相关文章
相关标签/搜索