android打开dev设备,Android/Linux驱动开发之使用dev_dbg调试设备驱动

本文介绍如何调整Linux内核中的dev_printk打印级别,确保调试信息能够正确地显示在终端上。通过修改DEFAULT_CONSOLE_LOGLEVEL宏定义的值,使得KERN_DEBUG级别的信息也能被输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3、注意dev_printk的打印级别:

dev_printk(KERN_DEBUG , dev , format , ## arg)

这里有个KERN_DEBUG的打印级别,其他级别如下(include/linux/kernel.h中):

#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   */

可以看到KERN_DEBUG级别最低为7。

再看/kernel/printk.c下的一个宏:

#define DEFAULT_CONSOLE_LOGLEVEL  7 /* anything MORE serious than KERN_DEBUG */

该行表示只有打印级别高于DEFAULT_CONSOLE_LOGLEVEL(值小于DEFAULT_CONSOLE_LOGLEVEL的值)的打印才会出现在终端上。而 KERN_DEBUG也为7,所以我们的调试不会直接打印出来。

将该行修改为:

#define DEFAULT_CONSOLE_LOGLEVEL  8 /* anything MORE serious than KERN_DEBUG */

来保证KERN_DEBU的值小于DEFAULT_CONSOLE_LOGLEVEL,然后加载eeprom驱动模块后:调试信息能够正确打印出来。

ab05725f50388f190d43b65923947f53.png0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值