使用proc文件系统来读取内核中的信息非常有用。
实例:在开发I2C相关驱动时,在内核启动后用户空间想要知道I2C相关寄存器的值时,可以这样做:

1)在I2C驱动模块中定义实际调用的函数

static int read_i2cinfo_from_proc(char *buf, char **start, off_t offset, int count,
int *eof, void *data)
{
int len=0;
len +=sprintf(buf+len,”I2C reg is 0x%x\n”,reg);
return len;
}

2)在I2C模块(如I2C算法驱动模块)初始化时建立一个proc entry

create_proc_read_entry(“readi2cinfo”, 0, 0, read_i2cinfo_from_proc, NULL);
//readi2cinfo为/proc目录中的文件名字
//read_i2cinfo_from_proc是实际调用的函数,在1)中定义

3)在用户空间查看当前I2C寄存器的值

$cat /proc/readi2cinfo

/*
*By Neil Zhao (neilzhao at refreshsys.com)
*转载请注明出处:http://www.refreshsys.com
*/

 posted on 2011-03-16 11:18  如是晴朗  阅读(2798)  评论(0编辑  收藏  举报