Android Sensor驱动开发实例
来源:互联网 发布:微信排队叫号系统源码 编辑:程序博客网 时间:2024/06/01 03:59
Android Sensor驱动开发实例
平台说明:
CPU : RK3288 Kernel : 3.10Android : 4.4 Sensor : HDC1000
有一个需求是为平台添加一个温度传感器,普通的APP可以通过Android标准的API获取温度值。温度传感器的驱动一般不会特别的难,但是如果要实现后者,那么就得对Android的API有很好的了解。单说Android平台其实也有三个步骤来走:1.在Windows平台测试该IC(连上EVM板) 2.在Linux应用层直接通过I2C来开发测试。 3.读懂目标板上的内核Sensor驱动;Sensor HAL架构,按照其规范进行编程。
1.在Windows平台测试该IC
拿到手上的是EVM模块,不是一个单独的IC,通过USB连接电脑后有专门的测试程序。温度测试出来后,证明硬件无问题。
2.Linux应用层测试
能够直接使用I2C通信的Linux系统也只能在嵌入式设备上,测试见过PC上有直接留出I2C接口的。I2C设备调试的第一步是我叫你一声你敢答应吗?
。
用专业术语叫使用I2C扫描工具(i2cdetect)进行扫描,看能否扫描到该设备。当然你需要先确认你的IC地址是多少。比如以0x40地址为例:
//TODO
IC应答后就开始后续的开发,需要按照数据手册要求的时序进行读写数据。这个就是将数据手册翻译成代码的过程。如果这个做完了,那么这说明这个设备以及驱动就算是通了。
I2C的Host端在Linux中不是像其它一样叫Controller(控制器)而是叫Adapter(适配器)。和其它总线一样,适配器端的驱动是由CPU厂商写好了。对驱动对应用的API都是标准的。一个使用到I2C总线的设备驱动才不会理会具体的I2C适配器驱动是哪个CPU厂家写的呢。
3.移植到Android中
其实如果只是在普通的嵌入式设备中,完成第二步就已经完成了整个驱动开发工作,但是对于有秩序的Android世界就不一样了。
应用层是统一的,可以下载一个程序Phone tester程序以备测试。
HAL层有标准,但是要看具体的平台厂家的实现了,因为你的东西要在他们平台上跑,也只能在他们本来的HAL中添加自己的代码,RK3288上而言是有Sensor HAL框架,大致是通过读取input event来进行数据的解析的,这一点利用了输入子系统。
同样内核中也看有没有实现好的框架,然后编写具体的程序。就RK3288上而言是有Sensor内核驱动框架。
没有记录具体的代码如何编写,但是将整体流程记录下来了,以后其它Sensor开发也可以按照这个流程来。
参与文档:
1. Android Sensors Overview Sensor应用程序开发
2. Android Sensors HAL Sensors hal-interface
3. i2c 编程接口
- Android Sensor驱动开发实例
- android sensor驱动移植
- Android之G-sensor驱动
- android sensor开发说明
- Android Light Sensor与Temperature Sensor开发
- Android Sensor Demo Framework实例
- [Android实例] Sensor传感器源码的阅读与应用开发简单实例
- linux驱动开发:mma7660 sensor的配置
- Android Sensor Orientation 传感器开发
- Android 驱动 sensor 模块--> kernel source function
- Android驱动开发之Hello实例
- Android开发教程之感应检测Sensor
- Android开发-Sensor传感器-AndroidStudio(一)摇一摇
- 海思Hi3518EV200(5)图像sensor驱动开发
- 海思Hi3518EV200(5)图像sensor驱动开发
- 文件系统驱动开发实例
- I2C 驱动开发 实例
- I2C 驱动开发 实例
- eclipse 添加git pull、push
- Scala与JAVA交互
- 响应式编程介绍
- 反省自己!我将来可是要做一个生活家程序员的男人!
- 设置QTP脚本中每个步骤之间的延时时间
- Android Sensor驱动开发实例
- WebView显示网页
- Windows Server2012 虚拟机复制及故障转移(Part1)
- Mac OS X系统上使用MacDown
- Direct-X学习笔记--变换
- PNG文件结构分析
- Android手机平板两不误 fragment(ListView)
- iOS——iPhone屏幕尺寸、分辨率及适配
- Vmware vSphere 5.0系列教程之一 Vmware vSphere 5.0简介