处于成本或多样性考虑,经常需要新增传感器进行兼容,本次以陀螺仪icm42607-p型号进行分析

1.如果平台或项目首次使用该传感器,需要添加传感器驱动文件(FAE提供),如果已经存在,直接进行下一步:

文件存放路径:

vendor\mediatek\proprietary\tinysys\freertos\source\middleware\contexthub\MEMS_Driver\accGyro\icm4n607.c

2.新增陀螺仪i2c接口、方向、地址及中断号进行配置;

mt6771:项目平台                 lv973:项目名

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\mt6771\lv973\cust\accGyro\cust_accGyro.c

#include "cust_accGyro.h"struct accGyro_hw cust_accGyro_hw[] __attribute__((section(".cust_accGyro"))) = {#ifdef CFG_ICM2060X_SUPPORT{.name = "icm2060x",.i2c_num = 1,.direction = 2,.i2c_addr = {0x68, 0},.eint_num = 4,},
#endif
#ifdef CFG_FIS210X_SUPPORT{.name = "fis210x",.i2c_num = 1,.direction = 2,.i2c_addr = {0x6a, 0x6b},.eint_num = 4,},
#endif
#ifdef CFG_ICM4X607_SUPPORT{.name = "icm4n607",.i2c_num = 1,.direction = 2,.i2c_addr = {0x68, 0},.eint_num = 4,},
#endif
};

查看项目配置文件可知,兼容前使用ICM2006X传感器,其中i2c_num,direction,eint_num可以完全照搬icm2006x的配置,宏定义和name进行修改,i2c_addr可以查看其他平台的配置地址或查看芯片手册获取;

3.添加overlay配置

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\mt6771\lv973\cust\overlay\overlay.c

void accGyroOverlayRemap(void)
{
ACC_GYRO_OVERLAY_REMAP_STARTACC_GYRO_OVERLAY_REMAP(icm2060x);ACC_GYRO_OVERLAY_REMAP(icm4n607);
ACC_GYRO_OVERLAY_REMAP_ENDreturn;
}

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\mt6771\lv973\inc\overlay_sensor.h

/*****************************************************************************
* Overlay0: ACCGYRO
*****************************************************************************/
#define OVERLAY_SECTION_ACCGYRO                    \OVERLAY_ONE_OBJECT(icm2060x, icm2060x)         \OVERLAY_ONE_OBJECT(icm4n607, icm4n607)
#ifdef OVERLAY_SECTION_ACCGYRO
#define OVERLAY0 OVERLAY_SECTION_ACCGYRO
#else
#define OVERLAY0
#endif  // OVERLAY_SECTION_ACCGYRO

4.在项目的配置文件中进行配置;

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\mt6771\lv973\ProjectConfig.mk

CFG_ACCGYRO_SUPPORT = yes
CFG_LSM6DS3_SUPPORT = no
CFG_LSM6DSM_SUPPORT = no
CFG_BMI160_SUPPORT = no
CFG_LIS3DH_SUPPORT = no
CFG_LIS2HH12_SUPPORT = no
CFG_FIS210X_SUPPORT = no
CFG_ICM2060X_SUPPORT = yes
CFG_ICM4X607_SUPPORT = yes

5.如果平台首次使用该传感器,需要将文件添加到编译链接中;

文件路径:

vendor\mediatek\proprietary\tinysys\freertos\source\project\CM4_A\mt6771\platform\feature_config\chre.mk

ifeq ($(CFG_FIS210X_SUPPORT),yes)
C_FILES  += $(SENDRV_DIR)/accGyro/fis210x.c
endif
ifeq ($(CFG_ICM2060X_SUPPORT),yes)
C_FILES  += $(SENDRV_DIR)/accGyro/icm2060x.c
endif
ifeq ($(CFG_ICM4X607_SUPPORT),yes)
C_FILES  += $(SENDRV_DIR)/accGyro/icm4n607.c
endif
ifeq ($(CFG_MIR3DA_SUPPORT),yes)
C_FILES  += $(SENDRV_DIR)/accGyro/mir3da.c
CFLAGS += -DCFG_ACC_NO_FIFO
endif
endif

如果感觉文章有用请给博主点个赞

MTK 安卓11 传感器兼容 陀螺仪42607-p相关推荐

  1. 真我realme V11realmeQ3I root解锁BL 刷magisk MTK 安卓11 root教程 救砖

    真我 realme V11 realmeQ3I root 刷magisk MTK 安卓11 root教程 救砖 OPPO mtk系列  安卓11 用magisk root后 会反复重启 无法开机 现在 ...

  2. MTK 安卓11 lcm AVDD及AVEE值修改

    通常情况下lcm的avdd默认5.4v,某些屏幕对avdd要求不同,需要进行修改 驱动程序路径: kernel-4.14/drivers/misc/mediatek/lcm/lcm_pmic.c in ...

  3. 安卓传感器全解:注册、注销传感器、监听传感器,距离传感器、方向传感器、陀螺仪、加速计、磁场、气压传感器

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓传感器全解:注册.注销传感器.监听传感器.距离传感器.方向传感器.陀螺仪.加速计.磁场.气压传感器. 注册.注销.监听传感器 1.自定义传感器监听 ...

  4. 安卓各种传感器的使用

    这段时间研究安卓上的各种传感器,然后这里做个总结 1.加速度传感器 2.磁场传感器 3.方向传感器 4.陀螺仪传感器 5.重力传感器 6.线性加速度传感器 7.温度传感器 8.光线传感器 9.距离传感 ...

  5. android 彩蛋 miui,MIUI12最新更新,安卓11彩蛋终于出现,流畅度提升

    原标题:MIUI12最新更新,安卓11彩蛋终于出现,流畅度提升 经过了几天连续推迟,基于安卓11 beta3的MIUI12终于更新,版本号为MIUI12 20.8.20,此次更新系统整体体验提升明显, ...

  6. 现在更新鸿蒙会成为小白鼠吗,安卓11.0被停用,鸿蒙OS即将登上,花粉:宁愿当小白鼠...

    原标题:安卓11.0被停用,鸿蒙OS即将登上,花粉:宁愿当小白鼠 众所周知华为发布鸿蒙系统已有大半年时间,根据该系统微内核升级计划,再过几个月,鸿蒙2.0版本就要正式发布,到时候部分安卓系统内核将全部 ...

  7. 鸿蒙系统剽窃,外媒再爆猛料!质疑华为鸿蒙系统抄袭:被指山寨谷歌安卓11系统...

    [12月27日讯]导语:在2020年12月16日,华为鸿蒙OS 2.0系统手机开发Bate版本,让网友们以及开发者们都可以更加清晰的了解认知到华为鸿蒙OS系统中的分布式操作系统.微内核研发等特征以及优 ...

  8. android11开发版小米,小米CC9推送MIUI 12.5稳定版 新版系统内核升级至安卓11

    小米 CC9 今日正式推送 MIUI 12.5 稳定版.这款手机于 2019 年发布,搭载高通骁龙 710 处理器,特点为后置 4800 万像素主摄,主打拍照. 小米 CC9 新系统版本号为 MIUI ...

  9. 安卓11上的存储权限问题

    这篇文章,想来发布的有些晚了,安卓11已经发布多时了,关于安卓11上的存储权限变更的文章数不胜数,所以这篇文章只做为自己的一个简单的记录吧! 在说11之前,我们先回忆以下10上存储权限的变更:每个应用 ...

最新文章

  1. 【JavaSE02】Java基本语法-思维导图
  2. addView的误区
  3. 多线程基础-实现多线程的两种方式(二)
  4. 数模笔记_单变量最优化
  5. 基于MTD的NAND驱动开发(二)
  6. WebScarab使用说明
  7. cocos2d-x JS 重力感应监听事件
  8. 亿级流量系统架构之如何支撑百亿级数据的存储与计算
  9. android studio或者IntelliJ代码样式的设置
  10. 深入理解Nginx~文件路径的定义
  11. 欧派caxa设计软件_CAXA软件三维设计的基本使用方法
  12. 梦幻服务器最新开服时间,梦幻服务器开区及合服时间汇总查询(2)
  13. zen cart template zencart模板修改
  14. 转载 电子工程师的程序人生历程
  15. php 分页样式定制,Laravel自定义分页样式
  16. 网吧局域网里的设置外网IP地址、设置内网IP地址、限制内网速度和路由器共享...
  17. 计世独家:新加坡国家网格雏形已现
  18. VLC播放器截图保存位置
  19. 史上最详细的DOM事件之拖动事件
  20. Qt网络编程:QSslCertificate(SSL证书)

热门文章

  1. 思维导图与概念图的区别是什么?
  2. 【单片机基础】89C52单片机串口通信
  3. 请让我像亲人一样爱你
  4. 苹果系统使用svg 动画_为什么要使用SVG图像:如何为SVG设置动画并使其快速闪电化
  5. cadence常用快捷键及小技巧(画斜线、开balloons等)
  6. 新生研讨课报告 计算机,机械工程新生研讨课报告.docx
  7. Oracle 报错:ORA-01438: 值大于为此列指定的允许精度
  8. 本地缓存之王-Caffeine
  9. android 经典rpg,安卓TOP10:SE经典RPG游戏《最终幻想7》领衔
  10. 数据结构:使用链栈实现回文判断