Android内核sysfs中switch类使用实例
来源:互联网 发布:pathfinder软件价格 编辑:程序博客网 时间:2024/04/24 15:56
原文地址;http://blog.csdn.net/kangear/article/details/37961151
Android内核sysfs中switch类使用实例
终于在这个周末,可以干点自己想要干的事了。由我这个二流的内核驱动开发者来解析一下sysfs中的switch类。先推测一下来历,在普通的嵌入式Linux平台上,一般是各自为战,完全不需要遵循什么规则。在Android中Google定义了一些潜移默化的规范,你可以完全不遵守。但是按照规则总归是好的。
先从直观的来看一下/sys/class/switch类中都有些什么吧。
首先可以看到实质是链接到了/sys/device/virtual/switch/目录,来看真面目:
这里包含了4个bl是背光;h2w是耳机;hdmi是hdmi;mic是麦克风 基本都属于外接式的设备,当然也可以不是比如bl。每个都包含了name/power/state/subsystem/uevent。都可以顾名思义,其中state一般是驱动中提供给用户空间的状态值。
那就以LDD3中的最简单的Hello World例子来做一个switch例子:
添加不足20行代码就已经实现了最简的switch了,效果如下所示:
驱动中可以直接调用switch_set_state来设置不同的状态值。对应地,应用层读取这个就可以实现状态获取。
本文没有详细去说明switch实现细节,以实用的角度给出了一个完整的例子。当然如果对实现细节需要有了解的,可以看《switch_class》《android switch模块》。对于“驱动”想要告知用户空间状态的实现就可以采用这个了。
顺便提一个编译LDD3中驱动例子的小技巧: make KERNELDIR=~/4.2.2_r1/kernel/后边这个是Android内核源码路径。当然路径中的kernel是要是编译过的。什么都不需要更改就可以顺利编译了。
附 完整简单例子代码:
- Android内核sysfs中switch类使用实例
- Android内核sysfs中switch类使用实例
- bootstrap-switch使用实例
- Android studio中使用switch小记
- Flex中switch语句实例
- Android使用switch模块进行GPIO口检测(二)-->Android内核部分
- linux内核sysfs详解
- linux内核sysfs详解
- linux内核sysfs详解
- linux内核sysfs详解
- linux内核sysfs详解
- Android中 PopupWindow 使用实例
- Android中Handler使用实例
- /sysfs探索4--实例教学--kobject-example.c导读 - [linux内核]
- /sysfs探索4--实例教学--kobject-example.c导读 - [linux内核]
- MATLAB switch case 语句使用实例源程序
- android studio switch控件使用
- android library 使用switch 问题
- 如何设置插入的Toolbar资源中按钮保持按下状态
- 手游创业漫话四 (我要做什么游戏 中)
- C++实现KMP算法(优化版)
- java(Android)——内存泄露的一些经典案例
- 银联基于OpenStack的金融私有云建设实践
- Android内核sysfs中switch类使用实例
- 更换phpcms后台编辑器自动添加的<div>标签为<P>标签
- 第6周—项目4 数制转换
- 1.3.5 head.s开始执行(3)
- spring 使用spel
- hdu4267A Simple Problem with Integers 线段树
- Hibernate 不同数据库的连接及SQL方言
- 位,字节,字的区别
- LeetCode(79) Word Search