printk 函数的原型如下:

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

第1个参数表示格式字符串,后面是再变参数。也就是说,一旦 printk 函数至少要有两个参数〔格式字符串),如果格式字符串中包含在占位符(%d、 %s), 后面必须跟与占位符相等数量的参数,以便一一对应传入 printk 函数。

KERN_DEBUG KREN_WARNING 是两个宏 它们的值分别为飞<7>和飞<4>。在 printk

数的第1个参数值(格式字符串)前面加尖括号(<…>)包含的数字表示输出的日志级别.

修改 p rintk_demo 驱动代码,通过编译指令定义了pr_debug 宏, 并通过修改

编译指令的条件值来控制是否调用 pri ntk 函数

         Linux 文件系统中, proc 经常被用来作为内核空间与用户空间进行数据交 EE 具。/ proc文件系统的行为方式与设备文件系统 C/dev )类似。/ proc 是虚拟文件系统,也就是说 proc 并不是真正的文件系统,而是内存映射 所有读写/ proc l¥J 操作都是对内存的读写 所以读写/ proc 文件系统的速度要远比读写 dev 文件系统的速度快。因此,/ proc 文件系统也可作为 inux 驱动与用户空间程序交互的工具.

proc_mkdir

name 虚拟目录名称。

parent 虚拟目录父目录的 pro c_ 让_ en 町结构体指针。如果直接在/ proc 目录下建 虚拟目录,该参数的值为 NULL

re e_p ro nt η

name 虚拟文件名

mode 虚拟文件的访问权限, 等同于 Linux 文件的访问权限

parent 文件父目录 proc _dir_ entry 结构体指针。如果直接在/ pro 剖录下建立虚拟

文件,该参数的值为 NU LL

at e_p oc_ ad _e

name 虚拟文件名称。

mod :虚拟文件的访问权限,等同于 Linux 文件的访问权限

base 虚拟文件父目录的 roc _dir_entry 结构体指针。如果直接在/ proc 下建立虚拟文件,

该参数的值为 NULL

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

data 用于虚拟文件系统的数据(任意类型的指针〉。该值就是 pro _dir_entry.read_proc 函数的最后一个参数值。相当于与某个虚拟文件永久绑定的数据。如果不市要设置该数据,可以为 NULL

remove_proc_entry

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

parent 虚拟文件父目录的 proc _dir_en 结构体指钊。如果直接在/ proc 目录下建立虚拟文件 该参数的值为 NULL.

posted on 2016-06-25 21:29  2101648015piO  阅读(112)  评论(0编辑  收藏  举报