MTK sensor 移植调试指南
一 AP侧介绍
1、Linux传感器驱动接口介绍
MTK内核常用传感器接口及移植指南
1.1.1 MTK传感器通用层介绍
公共层的目的是简化移植工作。另一方面,公共层与MTK HAL之间的通信采用了MTK专用接口(BIO管道),比输入事件高效得多。
1.1.2 公共层接口介绍
下一部分介绍了如何使用常用的API,并以加速度计为例。ap由两个头文件提供1. Accel.h,为Android层提供数据流和控制流API 2. Acc_factory.h,为MTK工厂模式提供数据流和控制流的API。
传递给API的结构可以引用已经实现的驱动程序。
1.1.3 计步器
本节介绍了基于acc自带的加速度计,如何访问计步器数据。可以引用下面文件夹中的接口,类似于前面介绍的acc公共接口。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c52669a301cd443da910ce4a4ae67421.pn
2、 Msensor lib porting guide
2.1.1 Archetecture
MTK HAL根据客户的不同需求提供第三方算法接口。客户可能希望在本地层实现融合、虚拟陀螺等一系列算法。MTK HAL架构如下:
Msensor lib与MTK lib的通信如下:
2.1.2 Mag lib interface introduction
Vendor/mediatek/proprietary/hardware/sensor/sesnors-1.0/include/mag_calibtation_lib.h
如果想保存一些参数,你可以将其写入mnt/vendor/nvcfg/sensor/xxx,当手机重启时,你也可以从你保存的文件中读取参数例如:/mntvendor/nvcfg/sensor/yamaha.txt
2.2 Porting Guid
1、将msensor源码和lib放在下面的文件夹:
vendor/mediatek/proprietary/hardware/libsensor
2、device/mediatekprojects/&project/ProjectConfig.mk Or device/mediateksample/&project/ProjectConfig.mk
3、vendor/mediatek/proprietary/hardware/libsensor/akl/Android.mk
4、vendor/mediatek/proprietary/hardware/sensor/sensor-1.0/Android.mk
Build sensor.&project.so auto link libakl.so
5、vendor/mediatek/proprietary/hardware/sensor/sensor-1.0/VendorInterface.cpp
6、lib interface,路径如下:
vendor/mediatek/proprietary/hardware/sensor/sensor-1.0/include/mag_calibtation_lib.h
接口实现在libxxx.so库中,路径:vendor/mediatek/proprietary/hardware/libsensor/xxx
7 设置以下宏到vendor/mediatek/proprietary/custom/{project}/hal/sensors/sensor/hwmsen custom.h
8 如果系统版本是Android P需要做如下修改:
1)更改akm09918驱动程序,使用akm作为库名
2)更新vendor/mediatek/proprietary/custom/$project/hal/sensors/sensor/hwmsen custom.c
- 更新device/Huawei/Sproject/Project Config.mk
2.3 Sensor校准接口
MTK提供了Android APP可以使用的校准接口,现在支持ACC和gyro校准,接近阈值校准。MTK提供了工程模式APK作为使用这些appls . itw的示例
2.3.1 使用adb命令校准acc和gyro:
1、adb root
2、adb shell
3、Acc 校准:cd sys/bus/platform/drivers/gsensor
gyro校准:cd sys/bus/platform/drivers/gyroscope
4 执行校准命令前,先平放机器:echo 1 > test_cali
如果Android P版本,校准数据会保存到 mnt/vendor/nvcfg/sensor/
5、检查校准结果: