我对linux理解之tty二

我们在mxc_uart.c中还发现console的初始化:
static int __init mxcuart_console_init(void)
{
    register_console(&mxc_console);
    return 0;
}
转而看register_console(&mxc_console):
void register_console(struct console *console)
{
......

    /*
     *    Put this console in the list - keep the
     *    preferred driver at the head of the list.
     */
    acquire_console_sem();
    if ((console->flags & CON_CONSDEV) || console_drivers == NULL) {
        console->next = console_drivers;
        console_drivers = console; //设定console_drivers为该console,后面printk信息生成的buffer就会送到该console里面打印出来
        if (console->next)
            console->next->flags &= ~CON_CONSDEV;
    } else {
        console->next = console_drivers->next;
        console_drivers->next = console;
    }
    if (console->flags & CON_PRINTBUFFER) {
        /*
         * release_console_sem() will print out the buffered messages
         * for us.
         */
        spin_lock_irqsave(&logbuf_lock, flags);
        con_start = log_start; //printk buffer的起始地方
        spin_unlock_irqrestore(&logbuf_lock, flags);
    }
    release_console_sem();
}

这里我们就看注释的两个地方,可以知道,这个register_console的作用主要是将改port注册到printk,以备后面printk的信息buffer输出到改port上.

http://www.qrsdev.com/forum.php?mod=viewthread&tid=397&extra=page%3D1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值