第十章

一、打印内核调试信息:printk

printk函数的原型如下:

asmlinkage int printk(const char * fmt, ... )

printk文件是一个简单的有4个数字组成的文本文件,该文件的默认值如下:6 4 1 7

6:将消息输出到控制台的级别。

4:默认的消息日志级别。

1:控制台日志级别可被设置的最小值

7:控制台日志级别的默认值.

二、防止printk函数降低Linux驱动性能

1.可变参数的宏

2.do{...}while(O)

三、通过虚拟文件系统进行数据交互 

proc_mkdir

name: 虚拟目录名称。

parent: 虚拟目录父目录的 proc_dir_entry结构体指针。

create_proc_enttry

name: 虚拟文件名称。

mode: 虚拟文件的访问权限

parent: 虚拟文件父目录的 proc_dir_entry 结构体指针。

create_proc_read_entty

name:虚拟文件名称。

mode:虚拟文件的访问权限

base:虚拟文件父目录的proc_dir_entry结构体指针。

read_proc:处理读动作的函数指针。

data:用于虚拟文件系统的数据。

remove_proc_entry

name:要删除的虚拟文件的名称。

parent:虚拟文件父目录的proc_dir_entry结构体指针。

原文地址:https://www.cnblogs.com/diyizhang/p/5647979.html