Linux设备驱动程序——驱动调试printk()

         前一段时间学了一下,printk()打印语句,现在用起来又忘了,看了一下前一段时间做的笔记,不是很详细,所以决定再写一下和printk相关的调试的东西。算是复习一下吧。

          首先,先熟悉一下printk函数,这个函数和printf函数很类似。只不过一个运行在用户态,一个运行在内核态。此外还是要熟悉一下终端,和控制台等几个概念

         首先需要说的是可以通过以下几种途径查看printk()函数的打印信息

          1、直接在终端中使用dmesg命令来查看   这个我自己试了一下这个里面所有级别消息的都能看见

           2、查看/var/log/messages   这个里面除了最后一个级别的其他级别的都能看见,7应该就是控制台级别。

   3、查看/proc/kmsg  这个试了一下,打不开呀,不知道为什么

1、printk及控制台的日志级别

Printk是在内核中运行的像控制台输出显示的函数。内核会先在内核空间中分配一静态缓冲区,作为显示用的空间,然后调用sprintf,格式换显示字符串,最后调用tty_write函数向终端打印信息。

#define KERN_EMERG 0/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/

#define KERN_ALERT 1/*报告消息,表示必须立即采取措施*/

#define KERN_CRIT 2/*临界条件,通常涉及严重的硬件或软件操作失败*/

#define KERN_ERR 3/*错误条件,驱动程序常用KERN_ERR来报告硬件的错误*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux设备驱动程序是用于控制和管理硬件设备的软件模块。学习Linux设备驱动程序可以帮助开发人员理解和掌握Linux内核的工作原理,以及如何编写和调试设备驱动程序。 以下是一些学习Linux设备驱动程序的笔记和建议: 1. 理解Linux设备模型:Linux设备模型是一种用于管理设备的框架,它提供了一种统一的方式来表示和操作设备。学习Linux设备模型可以帮助你理解设备的注册、初始化和销毁过程。 2. 学习字符设备驱动程序:字符设备是一种以字节为单位进行写的设备,如串口、终端等。学习字符设备驱动程序可以帮助你了解字符设备的打开、关闭、写等操作,并学习如何实现设备文件的注册和操作。 3. 学习块设备驱动程序:块设备是一种以块为单位进行写的设备,如硬盘、闪存等。学习块设备驱动程序可以帮助你了解块设备的分区、缓存、IO调度等操作,并学习如何实现块设备的注册和操作。 4. 学习中断处理:中断是设备向处理器发送信号的一种机制,用于通知处理器设备的状态变化。学习中断处理可以帮助你了解中断的注册、处理和释放过程,并学习如何编写中断处理程序。 5. 学习设备驱动程序调试技巧:设备驱动程序调试是一个重要的技能,可以帮助你快速定位和解决问题。学习设备驱动程序调试技巧可以帮助你理解和使用调试工具,如 printk、kprobe等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值