android底层驱动学习之debug方法(proc、sysfs、debugfs)
在调试内核驱动程序时,刚开始接触时,不知如何输出自己想要的信息,所以我们需要建立一些debug方法来获取。
下面先说下自己今天学的几种方法:
1. proc文件系统
a. 首先,proc文件系统是个什么东西呢
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。与sysfs对比相当于是XP系统。
b. 如何使用proc来debug内核呢?(对于3.10.0以后的kernel)
l 创建一个file_operations对象,如
static const structfile_operations fts_proc_fops =
{
.owner =THIS_MODULE,
.read = fts_debug_read,
.write = fts_debug_write,
};
l 通过proc_create创建对应的目录,如:
Struct proc_dir_entry fts_proc_entry = proc_create(PROC_NAME, 0777, NULL, &fts_proc_fops);由于第三个参数指的是parent,现在用了NULL,则默认在proc下面
l 最后就是丰富fts_debug_read和