您的位置:首页 > 其它

sys下面 proc下面,dev下面分别创建一个节点

2013-12-23 19:00 417 查看
/*proc/led节点创建*/

static viod led_create_proc(void){

struct proc_dir_entry*entry;

entry = create_proc_entry(DEVICE_NAME,0,NULL);

if(entry){

entry ->read_proc = led_proc_read;

entry ->write_proc = led_proc_write;

}

}

模块卸载

remove_proc_entry(DEVICE_NAME,0,NULL);

sys 下面产生节点:

/* 访问设置属性方法*/

static ssize_t led_val_show(struct device * dev, struct device_attribute*attr,char*buf);

static ssize_t led_val_store( struct device* dev,struct device_attribute*attr, const char*buf ,size_t count);

static DEVICE_ATTR(val,S_IRUGO}S_IWUSR,led_val_show,led_val_store);

其中sys下面节点是二进制文件,直接读写,会有内核调用show store ,DEVICE_ATTR是定义给了device_attribute的变量,其变量名字为dev_attr_##val(##为替换)。本例中定义了dev-attr_val变量。之后调用:class_create
device_create device_create_file产生属性文件,属性文件名字为val

led_class = class_create(THIS_MODULES,DEVICE_NAME);

temp = device_create(led_class,NULL,devID,“%s”,DEVICE_NAME);
//devid为设备号

err = device_create_file(temp,&dev_attr_val);

产生了 sys 也产生了dev下面的节点

模块卸载 device_destroy(led_class,MKDEV(led_major,led_minor));

class_destroy(led_class);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐