sys/class文件节点的制作
来源:互联网 发布:键盘侠网络暴力的危害 编辑:程序博客网 时间:2024/05/21 08:02
制作一个/sys/class/下的文件节点;
1. 定义变量
struct class *oled_bklight_class;struct device *oled_bklight_dev;
2. 定义需要操作的函数;
static ssize_t oled_bklight_show(struct device *dev, struct device_attribute *attr, char *buf){ return sprintf(buf, "%s ok\n", __func__);}static ssize_t oled_bklight_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size){ switch (buf[0]) { case '0': printk(KERN_INFO "%s: turn off bklight\n", __func__); ssd1305fb_full_screen(global_par, 0); gpio_set_value(global_par->bklight, 0); break; case '1': printk(KERN_INFO "%s: turn on bklight\n", __func__); ssd1305fb_update_display(global_par); gpio_set_value(global_par->bklight, 1); break; default: printk(KERN_INFO "%s: err paramater\n", __func__); break; } return size;}static struct device_attribute oled_bklight_on_off_attr = {.attr = {.name = "oled_bklight_on_off",.mode = S_IRUSR | S_IWUSR,},.show = oled_bklight_show,.store = oled_bklight_store,};
3. 创建节点:
oled_bklight_class = class_create(THIS_MODULE, "oled_bklight"); if (IS_ERR(oled_bklight_class)) { dev_err(&client->dev, "Failed to create class!\n"); } oled_bklight_dev = device_create(oled_bklight_class, NULL, 0, NULL, "enable"); if (device_create_file(oled_bklight_dev, &oled_bklight_on_off_attr) < 0) { dev_err(&client->dev, "Failed to create device file(%s)!\n", oled_bklight_on_off_attr.attr.name); }
4. remove掉创建的节点:
device_create_file(oled_bklight_dev, &oled_bklight_on_off_attr); device_destroy(oled_bklight_class, 0); class_destroy(oled_bklight_class);
0 0
- sys/class文件节点的制作
- sys/class 下文件节点创建实例
- 驱动添加设备节点/sys/class/
- 在/sys/class下创建访问节点
- sys下面的文件
- Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
- Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
- Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
- Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
- linux通过/sys/class/gpio文件 操作gpio的shell脚本
- Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
- Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
- Linux下用文件IO的方式操作GPIO(/sys/class/gpio)简单易操作
- Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
- TP驱动的sys节点建立
- TP驱动的sys节点建立
- TP驱动的sys节点建立
- 浅析/sys/class目录的创建流程
- 史上最全最强SpringMVC详细示例实战教程
- struts2中的action中实现了validate方法,struts.xml中的action配置了通配符,不能自动跳转到input
- com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method 错误处理
- 设计模式学习
- 计蒜客 简单图论(并查集 + 排序 + 枚举)
- sys/class文件节点的制作
- logistics图像分类器
- 前端编写第一个后台接口
- Alsa音频编程
- 百度云获取下载链接代码。
- error C2065: “servAddr”: 未声明的标识符__错误记录
- The Eclipse executable launcher was unable to locate its companion shared library
- EditText+listview+数据库操作实现搜索功能
- 有哪些比较好看的纪录片?