linux驱动中串口打印函数主要有3类,分别为printk、pr_xxx、dev_xxx。下面分别介绍这三种。
1. printk
printk和应用层下的printf的区别是在参数最前面多了一个宏,宏如下:
#define KERN_EMERG KERN_SOH "0" /* system is unusable */
#define KERN_ALERT KERN_SOH "1" /* action must be taken immediately */
#define KERN_CRIT KERN_SOH "2" /* critical conditions */
#define KERN_ERR KERN_SOH "3" /* error conditions */
#define KERN_WARNING KERN_SOH "4" /* warning conditions */
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
#define KERN_INFO KERN_SOH "6" /* informational */
#define KERN_DEBUG KERN_SOH "7" /* debug-level messages *
一般在使用printk打印信息时最好加上如上的宏之一,一般调试信息使用KERN_DEBUG
即可,提示信息使用KERN_INFO
。如若不加宏,则使用默认的信息级别MESSAGE_LOGLEVEL_DEFAULT
。
默认信息级别如下:
在kernel/printk/pr