u-boot使用printf、puts函数打印调试信息。printf、puts函数都是在console.c文件中实现的。console.c实现了控制台。
console,翻译过来的意思是控制台,其实是为内核提供打印的。console必须和一个具体的设备连接在一起。pc的终端常用的是由显示器和键盘构成,用户打印和内核打印都从这个终端反映给用户。所以,这里/dev/console是连接到/dev/tty0的。如果,我们来个专门打印内核的设备(比如通过串口),我们把那个串口注册到console,那么/dev/console就连接到这个串口设备了。这时,内核打印就到这个串口设备了,而用户的打印还是和上面的/dev/tty相关,如果/dev/tty对/dev/tty0,那么用户打印还在窗口中出现。
一、U-Boot的console、printf、puts设计框架
console、printf、puts之间的关系如图1所示。
图1 console、printf、puts之间的关系
二、U-Boot的console实现
图1中,串口相关函数已经