1. 先找出真实串口是什么型号
1.1 怎么找?笔者提供两种方案:
方案一: 若当前的板子支持dm,从uboot的dts找串口节点对应的compatible属性
方案二: 从linux内核的dts找串口节点对应的compatible属性
1.2 笔者当前的uboot不支持dm,所以笔者是从linux内核的dts中找到的
compatible="ns16550",所以笔者的板子硬件是ns16550这个ip
2. 配置选项
CONFIG_DEBUG_UART=y (在make menuconfig中使能此选项后,会出现配置使用哪种串口、串口基地址、输入时钟、寄存器偏移等等可配置项)
CONFIG_DEBUG_UART_NS16550=y (需要根据具体的串口ip选择哦)
CONFIG_DEBUG_UART_BASE = 0x21c0500 (需要根据具体的soc修改哦)
CONFIG_DEBUG_UART_CLOCK = CONFIG_SYS_CLK_FREQ / 2 (需要根据具体的soc修改哦)
CONFIG_DEBUG_UART_SHIFT=0 (需要根据具体的soc修改哦)
3. 需要在调试之前调用debug_uart_init(),如下:
#define DEBUG
#if CONFIG_DEBUG_UART
#include <linux/types.h>
#include <debug_uart.h>
#endif
#if CONFIG_DEBUG_UART
debug_uart_init();
debug("%s: %d Jello
", __func__, __LINE__);
#endif