资讯详情

Android Sensor Driver(三)——其它传感器驱动

属性系统

属性系统传感器驱动的主要组成部分。在传感器驱动中,通常使用属性系统来实现传感器的、关闭和参数设置读取。一个简单的例子如下:

HWMON驱动

hemon子系统,可以理解为 hardware monitor——包括温度传感器传感器,包括温度传感器等。通常典型的例子是LM75温度传感器。该传感器被广泛使用,其代码在linux核心的位置:$(LINUX SOURCE CODE)/driver/hwmon/lm75.c。这里我们有一个简单的HWMON例子:

我为hwmon还写了一个简单的测试代码,有点懒,不喜欢写。

ioctl

ioctl属于高级字符驱动程序操作,详细说明可参考《ldd3.第六章。在传感器驱动中,通常是通过HWMON或者MISC实现和调用设备驱动ioctl方法MISC驱动中实现IOCTL方法。

MISC驱动

Linux的MISC子系统通常用于实现不良分类的字符设备,如AD、看门狗和一些传感器。通常用于传感器驱动MISC用户层代码可以通过文件接口驱动提供文件接口ioctl传输命令和参数,以控制传感器的工作。

一个MISC驱动的简单代码如下:

注:在Linux的misc子系统中,misc_register和misc_deregister分别用于注册和删除MISC设备。misc_register将结构体miscdevice注册成MISC设备,并将file_operations通过与设备相关联,我们可以在/dev使用下生成的文件接口ioctl传输控制参数。

驱动测试文件代码如下:

注:MISC驱动文件接口和SYS路径在测试代码中宏定义,我们获得/dev/misc_example使用文件描述符后,使用文件描述符ioctl方法与MISC驱动交互。

说明

以上代码为64位ubuntu12.编译并测试通过04。

标签: 光感传感器zp一12g

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台