android sensor移植
来源:互联网 发布:上海狮翼网络 编辑:程序博客网 时间:2024/06/05 11:49
sensor直接连接到应用处理器,并有linuxkernel管理。本文涉及到kernel驱动,sensor HAL以及SensorService。
sensor架构
安卓提供Sensor API和SensorManager,然而没有提供Sensor HAL和sensor驱动。
电源管理和管脚功能设置在设备树中应当设置好,Sensor类用于支持一些新特性。增加了一些sensor新特性,如:NativeSensorManager,,CalibrationManager,虚拟传感器支持,
传感器驱动
内核sensor驱动,包括电源,pin脚,传感器类,通常传感器驱动位于drivers/input/misc/。
传感器的电源
设备树配置
传感器芯片的驱动由sensor的probe驱动设置,mmc3416xpj的配置驱动如下:
vdd-supply:指示给传感器供电的电源器件;pm8916_l17电源管理器vio-supply:IO和I2C需要的数字电源,pm8916_l6是电源管理器
更多设备树定义见:regulator
在操作sensor chip之前需要初始化该芯片,regulator_get,regualator_count_voltages,regulator_set_voltages , regulator_enable ,以及regulator_disable。
管脚控制
设备树配置
pinctrl初始化
在probe是被调用。
pinctrl_get()--获得设备的pinctrl
pinctrl_lookup_state()--获取管脚状态
pinctrl_select_state()--设置硬件管脚状态
可以参考drivers/input/misc/akm09911.c提供的pin脚相关详细信息。
Sensor 类支持
这个是sensor类框架如下:
为了支持这一通用架构,需要按增加一些callback支持。
1.添加头文件
2.增加sensors_classdev类3.注册设备类4.在注册设备之前填充结构体相关字段5.实现回调可以参考drivers/input/misc/mmc3416x.c。
推荐使用cdev name注册到sensor类。
Native sensor HAL
其定义于
CalibrationManager
数据结构
CalibrationManager加载第三方校正库,calibration 模块数据被用于HAL和第三方库,定义于:
sensor_cal_module_t定义了该模块的描述,其保存了对自身的引用,CalibrationManager调用init,deinit以及get_algo_list和矫正库交互,get_cal_algo_list返回库包括的算法,校正库
校正库可以放在安卓代码库的任何地方,校正库应当被编译成一个共享库,该库位于system/vendor/lib,Sensor HAL使用兼容表选择校正算法,所以兼容表必须被正确设置,
NativeSensorManager
NativeSensorManager的源代码位于hardware/qcom/sensors/;
图:call和poll流程
NativeSensorManager初始化
NativeSensorManager也许会在open_sensors之前被调用。
初始化过程如下:
1.扫描/dev/input目录,并获得传感器的路径名和设备名
2.通过/sys/class/sensors获得sensor list。
3.将sensor list和设备节点路径相关联
4.初始化硬件驱动(sensorBase 子类)
5.初始化虚拟sensor
命令和数据流管理
NativeSensorManager接收所有的命令和数据。
虚拟设备管理
NativeSensorManager管理,支持的设备是Orientation, Linear Acceleration, Gravity, Rotation Vector, Pseudo Gyroscope, and Uncalibrated Magnetic Field。
- android sensor驱动移植
- Android Sensor 移植
- android sensor移植
- android sensor移植
- Android上Sensor移植的总结
- Android上Sensor移植的总结
- Android上Sensor移植的总结
- Android上Sensor移植的总结
- Android上Sensor移植的总结
- fsl Android 上Sensor 移植的总结
- Android上Sensor移植的总结
- Android上Sensor移植的总结
- 关于sensor在android系统原生应用中的使用(从应用层面验证sensor移植)
- ICS g-sensor,light sensor移植记录
- Android Sensor
- android sensor
- android sensor
- android sensor
- Spring基础内容
- 英年早逝的不止ICO,我们可能失去更多
- java 截取字符串获取子字符串
- SylixOS中DNS静态映射简介
- sql server 附加数据库 错误5123 解决办法
- android sensor移植
- TensorFlow实现seq2seq
- json取值
- LeetCode--Minimum Path Sum
- 第三周项目一(1)—顺序表的基本运算
- ++i 与 i++ 区别及踩过的坑
- MOS管开关电路设计
- halcon HObiect和 opencv Mat 转化
- lua基础学习(翻译defsniky (@i小雨生))