MTK Sensor 分为AP和SCP两大部分,AP是主芯片,SCP是协处理器,都可以负责处理sensor数据。所以在MTK在驱动调试时经常会说sensor是挂AP侧还是挂scp侧。

在AP侧的sensor的调试不是很复杂,一般的步骤是找器件原厂对应的驱动,描述清楚是MTK的哪颗芯片,内核时什么版本。我之前调试的时kernel-4.19版本,sensor 1.0的,后面都是以sensor 1.0的进行说明。

在拿到器件的驱动后,一般的步骤如下:

(1)根据原理图编辑对应的dts;

(2)将拿到的代码合入到kernel-4.19/drivers/misc/mediatek/sensors-1.0对应的器件子目录,在新增的子目录中增加Makefile跟Kconfig文件,Kconfig中就配置下当前器件模块名称,Makefile指定编译的文件与文件目标;

(3)在 kernel-4.19/arch/arm64/configs对应的config配置文件enable对应的sensor,例如我调的时light sensor 跟p sensor器件,配置CONFIG_CUSTOM_KERNEL_ALSPS=y,因为只有这个选项配置了,kernel-4.19/drivers/misc/mediatek/sensors-1.0/Makefile才配置对应的模块进行编译;增加步骤一的某块名称如CONFIG_MTK_XXX=y;

(4)编辑device/custom/custom_project/ProjectConfig.mk文件,enable对应的sensor模块,例如我的时L/P sensor挂载在AP侧,那就编辑CUSTOM_KERNEL_ALSPS = yes;

(5)开始编译内核,解决对应的编译问题;

(6)更新boot.img,scp.img文件,抓内核的开机日志,看是否有正常跑到module_init。

(7)安装应用查看应用层是否能获取到对用的sensor。之前就有遇到过,从日志看都已经跑到probe了,但是应用层sensor list中就是没有获取到。这里需要关注下驱动的probe代码中是否有调用sensorlist_register_deviceinfo进行sensor注册,如果没有sensorlist中是获取不到新增的sensor的。

到这里AP 侧sensor 驱动就算合入了。这个过程中需要关注几个

(1)dts一定要配置对,如果对应的GPIO没有上拉,也是在sensor列表中获取不到sensor的;

(2)在probe中一定要调用sensorlist_register_deviceinfo进行注册sensor;

这里编译整理会是比较耗时,运气好也许一个上午就点亮了,运气不好也许三天了还在里面找原因。

sensor 点亮后,像L/P sensor,g sensor、sar sensor都还需要校准,这个工作量会比前期简单的点亮多的多。另外sar sensor 数据正常上抛后,还需要同系统、同天线联调,在什么场景下进行降功耗,而且要确定sar sensor是否可以稳定触发,之前就遇到过sar sensor灭屏一会儿就不触发了,因为进入待机了,没有进行中断唤醒查了好久,还有就是原厂给的不是final的参数,导致出现各种问题。

SCP(Tinysys)协处理器,负责sensor,audio相关的feature,以及可以扩展客户私有的功能。MTK SCP的系统选用的是FreeRTOS。如果器件是挂在scp侧的,修改的代码会稍微多些,原厂在给这部分的驱动时提供的资料会稍微详细些,我这里以g sensor为例。

(1)在vendor/mediatek/proprietary/tinysys/freertos/source/middleware/contexthub/MEMS_Driver/accGyro目录下添加器件原厂提供的驱动文件;

(2)修改vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/project/CustomerProject/ProjectConfig.mk文件,定义支持新增的sensor如:CFG_XXXX_SUPORT = yes;

(3)修改vendor/mediatek/proprietary/tinsys/freertos/source/project/CM4_A/project/platform/feature_config/chre.mk,根据步骤2中的定义控制驱动代码参与编译

(4)修改vendor/mediatek/proprietary/tinsys/freetos/source/project/CM4_A/project/customerporject/inc/overlay_sensor.h,看是什么sensor,例如我添加的是gsensor,则修改

#define OVERLAY_SECTION_ACCGYRO, 添加新的器件

(5)修改vendor/mediatek/proprietary/tinsys/freetos/source/project/CM4_A/project/customerproject/cust/overlay/overlay.c,修改accGyroOverlayRemap,添加新的器件;

(6)修改vendor/mediatek/proprietary/tinsys/freertos/source/project/CM4_A/project/customerproject/cust/accGyro/cust_accGyro.c,根据原理图添加器件的对应的i2c引脚

(7)然后就开始编译,如果编译中提示超出memory,那就需要修改下 vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/project/platform/Setting.ini根据对应的编译错误修改对应的size。

(8)更新scp.img,重启抓scp日志,查看日志是否有正常加载器件。我有遇到过不能加载的,是加载上一个同类型器件,加载失败对应index没有示范,导致加载失败的,这样就需要修改对应的器件加载失败,是否对应index;也有遇到过需要写的i2c数据比较大,在写I2C块数据时失败了,这时候就看看是否需要开启DMC对应的配置时CFG_I2C_CH0_DMA_SUPPORT、CFG_I2C_CH1_DMA_SUPPORT。

mtk sensor 驱动调试相关推荐

  1. MTK平台驱动调试的资料

    最近要从事MTK6260平台方面的开发工作.工作内容包括BSP调试及部分功能的代码移植.之前没有接触过这类工作内容,所以在网上查找了一些资料,并添加到自己的博客上,方便自己查找. 以下为其他人的资料: ...

  2. 【转载】MTK Sensor 传感器驱动及系统框架 1. 【非常好】【mtk sensor 驱动框架】hwmsen_dev.c

    原创在:https://blog.csdn.net/wangjun7121/article/details/61916427 发现很多转的没有注明出处,这里添加出处,感谢作者. /*MTK senso ...

  3. Mtk Sensor 驱动框架变更简要分析

    Mtk Android 8.0 以后版本,Sensor 部分主要修改了 data path 框架,原来数据通过输入子系统传递到应用层,现在采用 misc dev + poll 实现数据上报.下面以 G ...

  4. Jetson Nano CSI相机驱动调试注意

    本文介绍Jetson Nano通过CSI接口连接外部Sensor驱动调试注意事项. 1.I2C配置 Jetson Nano默认I2C采用的是CAM_I2C,但有时候硬件设计时采用的是其他I2C,如: ...

  5. MTK 驱动(72)---mtk Android如何调试recovery模块

    mtk Android如何调试recovery模块 通用的调试程序的步骤: 找到调试模块在系统代码中的路径: 知道代码在哪里之后就是编译代码了,即如何编译调试模块: 编译出目标文件后就要将目标文件放到 ...

  6. MTK Camera驱动移植

    对于MTK Camera驱动移植一般分为四部分: 1.硬件IO口配置: 2.Camera驱动移植: 3.上电时序: 4.修改i2c控制器: 硬件电路: 1.GPIO配置 打开 mediatek\dct ...

  7. RK3568 Sensor驱动开发移植(3)

    RK3568 Camera 使用 RK3568 Sensor驱动开发移植(1) RK3568 Sensor驱动开发移植(2) RK3568 Sensor驱动开发移植(3) 实现标准 I2C 子设备驱动 ...

  8. camera调试:VCM马达驱动调试(DW9763)

    这篇文章介绍一下VCM马达驱动的调试,以RK3588,安卓平台,移植DW9763驱动为例. 目录 (一)概述 (1)VCM简介 (2)实现camera对焦方法 ①实现光学变焦采用变焦马达(ZOOM) ...

  9. Camera驱动调试常见问题

    在嵌入式系统,如手机等平台上使用的Camera sensor通常是由类似I2C这样的总线进行寄存器控制,由CPU端的Controller提供所需的驱动时序,通常支持YUV和RGB等数据格式.有的Sen ...

  10. Camera5 MTK camera驱动框架介绍

    一.概序: 前文已经介绍了camera驱动部分的内容Camera4 MTK camera驱动结构介绍,这里在回顾下之前的框架图, 这篇主要介绍红框部分的内容: imgsensor起到承上启下的作用,在 ...

最新文章

  1. linux c++ 函数 查看,在C++ man pages中查询C++的函数
  2. The prefix context for element context:component-scan is not bound.
  3. 新建虚拟机Ubuntu16.4安装搜狗输入法的问题
  4. 在pom.xml中配置nexus上传地址
  5. vb连接mysql未发现_vb连接MySQL遇到的问题解决方法
  6. JAVA IO系列----ObjectInputStream和ObjectOutputStream类
  7. c++ 的 stl模板库_C ++中的标准模板库(STL)
  8. 【Hive】Hive 建表语句详解
  9. CommonAPI-SomeIP 使用
  10. 如何将英文PDF翻译成中文且格式不变?(PDF免费翻译攻略)
  11. 学会远程开机之后,发现远程控制软件特别多,哪些好用?哪些免费?
  12. C#获取中国免费的天气信息
  13. OSPF基本工作原理(上)
  14. vue2中h(“router-view“) vue3如何写?
  15. WRF-Chem emission guide
  16. 期末作业成品代码——绿色的餐饮美食网站(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码
  17. 虚拟化、云计算与超融合的简单总结
  18. js 写一个简单的搜索关键字
  19. ASEMI整流桥DB107有什么用
  20. [dEw] 简单文件系统设计笔记

热门文章

  1. Python黑帽子_hack与渗透测试编程之道 第三章代码
  2. 基于Java实现的免疫算法-克隆选择算法
  3. 虚拟机里面主要涉及哪些功能,虚拟机管理需要哪些功能
  4. 一个离线的简单的 JSON 格式化编辑器
  5. SQL日历表数据的简单生成
  6. LBP原理介绍以及算法实现
  7. fp算法例题_机器学习-FPGROWTH算法.pptx
  8. 雅黑科技php探针,雅黑PHP探针参数详解
  9. 数据库设计(二)——简单设计实例
  10. 全国分省企业CEO任期、CEO学历数据(5W+)