zoukankan      html  css  js  c++  java
  • 25、驱动调试之打印到proc虚拟文件

    1、dmesg指令是通过读/proc/kmsg来获取打印信息,也可以通过cat /proc/kmsg打印;

      说明:kmsg是环形缓存区,只能读一次

    2、内核中fs/proc目录下有相关文件,比如proc_misc.c,在入口函数中可以看到(4.3.2内核改到kmsg.c文件中)

      #ifdef  CINFIG_PRINTK

      entry = create_proc_entry("kmsg"--------);//在proc下创建kmsg文件

      entry ->proc_fops = &proc_kmsg_operations;//proc_kmsg_operations是个file_operation结构体,提供对文件的读写函数

    3、模仿printk制作myprintk函数,数据写到mylog_buf,读/proc/mymsg获得数据

    4、通过EXPORT_SYMBOL(函数名)导出函数给外部驱动使用,外部驱动在使用的时候通过extern int myprintk(const char *fmt,...)声明

    5、如果应用程序使用到了中断,然应用程序后台运行,通过cat /proc/interrupts可以查看中断信息,比如中断次数,

  • 相关阅读:
    博客园设置简约主题
    day25-48
    day1-10
    drf app
    flask 框架 练习
    vue入门 显示数据 操作属性 操作样式 条件渲染
    flask 配置文件 路由 视图 模板 中间件
    flask 使用数据库连接池
    Android 工程中添加依赖
    apk反编译
  • 原文地址:https://www.cnblogs.com/liusiluandzhangkun/p/8678351.html
Copyright © 2011-2022 走看看