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

/*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);



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值