分类: LINUX
2008-11-07 01:16:50
早期采用实地址:
putstr()-〉putc()
example:
putstr("Uncompressing Linux...");
putc直接控制寄存器
example:nux/include/asm-arm/arch-versatile/uncompress.h
static inline void putc(int c)
{
while (AMBA_UART_FR & (1 << 5))
barrier();
AMBA_UART_DR = c;
}
后期采用printk将消息打印到环形缓冲区__log_buf
消息体通过console设备的write操作输出到系统所有已注册的内核控制台上.
缺省的显示级(default_console_loglevel)为调试级, 显示除了调试消息的所有信息,
它可以用syslog()设置. 最小允许显示级别由minimum_console_loglevel限定, 初值为警界级,禁止打印除了致命消息以外的所有消息.
后期所有信息在console注册后才会显示
全局变量console_drivers
uart_add_one_port=>uart_configure_port=>register_console