文章目录
Linux动态打印的两种方式
https://blog.csdn.net/u010481276/article/details/50896520
一、驱动使用module_param_named方法**
原型:module_param_named(name, variable, type, perm);
其中name是外部可见的参数名,variable是源文件内部的全局变量名。而module_param通过
module_param_named实现,此时name与variable相同。该方法可以使模块源文件内部的变量
名与外部的参数名有不同的名字
1.驱动添加代码:
static int dbg_enable = 0;
module_param_named(dbg_level, dbg_enable, int, 0644);
#define sensor_printk(args...) \
do { \
if (dbg_enable) { \
pr_info(args); \
} \
} while (0)#ifdef pr_debug
#undef pr_debug
#define pr_debug(fmt,...) printk(KERN_INFO"%s:%s :%d\n "fmt, __FILE__ , __FUNCTION__ , __LINE__ , ##__VA_ARGS__)
#else
#define pr_debug(fmt, ...) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
#endif
(1) VA_ARGS 是一个可变参数的宏,很少人知道这个宏,这个