我是靠谱客的博主 要减肥柜子,最近开发中收集的这篇文章主要介绍MTK 安卓11 传感器兼容 陀螺仪42607-p,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

文件存放路径:

vendormediatekproprietarytinysysfreertossourcemiddlewarecontexthubMEMS_DriveraccGyroicm4n607.c

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

mt6771:项目平台                 lv973:项目名

文件路径:

vendormediatekproprietarytinysysfreertossourceprojectCM4_Amt6771lv973custaccGyrocust_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配置

文件路径:

vendormediatekproprietarytinysysfreertossourceprojectCM4_Amt6771lv973custoverlayoverlay.c

void accGyroOverlayRemap(void)
{
ACC_GYRO_OVERLAY_REMAP_START
    ACC_GYRO_OVERLAY_REMAP(icm2060x);
    ACC_GYRO_OVERLAY_REMAP(icm4n607);
ACC_GYRO_OVERLAY_REMAP_END

    return;
}

文件路径:

vendormediatekproprietarytinysysfreertossourceprojectCM4_Amt6771lv973incoverlay_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.在项目的配置文件中进行配置;

文件路径:

vendormediatekproprietarytinysysfreertossourceprojectCM4_Amt6771lv973ProjectConfig.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.如果平台首次使用该传感器,需要将文件添加到编译链接中;

文件路径:

vendormediatekproprietarytinysysfreertossourceprojectCM4_Amt6771platformfeature_configchre.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的全部内容,希望文章能够帮你解决MTK 安卓11 传感器兼容 陀螺仪42607-p所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部