九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 3746|回复: 0
打印 上一主题 下一主题

printk函数使用

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-19 12:07:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在linux驱动中通常使用printk函数实现串口输出,跟踪调试信息。
与标准C语言的printf不同的是,printk支持分级输出。

在linux/kernel.h中,定义了以下8个级别:
#define        KERN_EMERG        "<0>"        /* system is unusable                        */
#define        KERN_ALERT        "<1>"        /* action must be taken immediately        */
#define        KERN_CRIT        "<2>"        /* critical conditions                        */
#define        KERN_ERR        "<3>"        /* error conditions                        */
#define        KERN_WARNING"<4>"        /* warning conditions                        */
#define        KERN_NOTICE        "<5>"        /* normal but significant condition        */
#define        KERN_INFO        "<6>"        /* informational                        */
#define        KERN_DEBUG        "<7>"        /* debug-level messages                */

通常我们使用如下语句打印跟踪信息:
printk(KERN_INFO"your message\n");

如果不定义输出级别,即使用下面的语句打印信息:
printk("your message\n");
则用默认的级别DEFAULT_MESSAGE_LOGLEVEL。

在printk.c中,定义了默认的级别:
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */

在/linux/kernel.h中定义了打印的级别console_loglevel以及缺省的打印级别default_message_loglevel:
#define console_loglevel (console_printk[0])
#define default_message_loglevel (console_printk[1])
console_printk[]数组定义为:
int console_printk[4] = {
        DEFAULT_CONSOLE_LOGLEVEL,        /* console_loglevel */
        DEFAULT_MESSAGE_LOGLEVEL,        /* default_message_loglevel */
        MINIMUM_CONSOLE_LOGLEVEL,        /* minimum_console_loglevel */
        DEFAULT_CONSOLE_LOGLEVEL,        /* default_console_loglevel */
};
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */
/* We show everything that is MORE important than this.. */
#define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */
可见,打印级别为DEFAULT_CONSOLE_LOGLEVEL=7,任何小于该级别的输出都会显示在终端上。我们可以修改console_loglevel以控制打印输出。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-5-7 21:53 , Processed in 0.016738 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表