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

属性系统 




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

        属性系统的驱动代码 




HWMON驱动 

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




        HWMON的驱动代码

        我为hwmon也写了一个及其简单的测试代码,有点懒,不爱写了。。。

        HWMON的测试代码 

ioctl 

        ioctl属于高级字符驱动程序操作,详细的说明可以参考《ldd3》的第六章。在传感器驱动中,一般通过HWMON或者MISC设备驱动来实现和调用ioctl方法。在本文中我们将在MISC驱动中实现IOCTL方法。 




MISC驱动 

         Linux的MISC子系统通常用来实现不太好分类的字符设备,比如AD、看门狗以及一些传感器。在传感器驱动中,通常使用MISC驱动提供一个文件接口,通过该文件接口,用户层代码可以使用ioctl来传递命令和参数,从而控制传感器的工作。 

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

        MISC代码链接 

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

        驱动测试文件代码如下: 

        MISC驱动测试代码 

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

说明


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

测试代码:

MISC代码链接

驱动测试文件代码如下:

MISC驱动测试代码

 

http://blog.chinaunix.net/uid-26017891-id-3491096.html

 

转载于:https://www.cnblogs.com/MMLoveMeMM/articles/4109627.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值