1.添加驱动文件

路径:vendor\mediatek\proprietary\tinysys\freertos\source\middleware\contexthub\MEMS_Driver\alsps

驱动.c   驱动.h  (以stk3321.c   stk3321.h为例)

2.添加硬件配置支持

路径:
vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6768/P98980AA1/ProjectConfig.mk

CFG_stk3321_SUPPORT = yes //修改内容

CFG_stk3321_SUPPORT = yes
CFG_CM36558_SUPPORT = yes

3.添加硬件配置

路径:
vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6768(根据项目定)/P98980AA1/cust/alspscust_alsps.c

#ifdef CFG_STK3321_SUPPORT
{
.name = "stk3321", //驱动名字,以驱动代码的.c文件名为准
.i2c_num = 0, //使用i2c选0,spi选1
.i2c_addr = {0x48, 0}, //使用i2c时是i2c地址,使用spi时为0,即{0, 0}
.polling_mode_als = 1, //0为轮询,1为中断
.als_level = {0, 328, 861, 1377, 3125, 7721, 7767, 12621, 23062, 28430, 33274, 47116, 57694, 57694, 65535}, //光感采样值范围
.als_value = {0, 200, 320, 502, 1004, 2005, 3058, 5005, 8008, 10010, 12000, 16000, 20000, 20000, 20000, 20000}, //光感采样值经过算法获得的上报值范围。
.eint_num = 10, //中断脚
},
#endif

4.添加编译配置

路径:
vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6768(根据项目定)/platform /feature_config/chre.mk

ifeq ($(CFG_STK3321_SUPPORT),yes)
C_FILES += $(SENDRV_DIR)/alsps/stk3321.c
endif //注意放到对应传感器支持位置

5.分配空间(非必要,当代码量超过当前空间大小时将会报错,根据报错log改大小即可。)

路径:
vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6768(根据项目定)/platform/Setting.ini

alsps:***        //原有大小足够就不用改,反之跟着需求修改

6.兼容配置

路径:vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6768(根据项目定)/P98980AA1/inc/overlay_sensor.h

#define OVERLAY2  \
OVERLAY_ONE_OBJECT(cm36558, cm36558) \
OVERLAY_ONE_OBJECT(stk3321, stk3321) //特别注意,”\”为连接符,必不可少。

路径:
vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6768(根据项目定)/P98980AA1/cust/overlay/overlay.c

void alspsOverlayRemap(void)
{
ALSPS_OVERLAY_REMAP_START
ALSPS_OVERLAY_REMAP(cm36558);
ALSPS_OVERLAY_REMAP(stk3321);
ALSPS_OVERLAY_REMAP_END
return;

7.特殊情况 (下面这一步基本不用自己做,厂商提供的驱动代码都写好了,万一没有,可以自己加)

(FAE给的驱动有些许问题)

路径:
vendor/mediatek/proprietary/tinysys/freertos/source/middleware/contexthub/MEMS_Driver/alsps/stk3321.c

/*
#ifndef CFG_OVERLAY_INIT_SUPPORT
MODULE_DECLARE(stk3321, SENS_TYPE_ALS, stk3321Init);
#else
#include "mtk_overlay_init.h"
OVERLAY_DECLARE(stk3321, OVERLAY_WORK_02, stk3321Init);
#endif
*/

8.遇到的问题

  1. 添加硬件配置时,如果协议是spi时,误将”.i2c_num”改为“.spi_num“,没有”.spi_num“这种写法,是根据值来判断使用的是哪个协议。
  2. I2c地址写错,当时因为项目资料i2c通讯规格书上的i2c地址为0x46, 但是实际上该传感器的数据手册却是0x48,所以导致i2c通讯失败,改正后通讯成功。
    (注:I2c通讯地址以IC数据手册为准)
  3. scp空间不足报错,根据log更改空间大小后编译通过。
  4. 兼容配置时overlay_sensor.h里添加驱动名字后没有添加连接符,导致编译报错,查看平台其它自带传感器配置添加后编译通过。
  5. 修改中断脚后却不生效,删掉out目录后重编生效。

联发科 (MTK) sensor bring up的更多相关文章

  1. MTK 虚拟 sensor bring up (pick up) sensor2.0

    pick up bring up sensor2.0 1.SCP侧的配置 (1) 放置驱动pickup.c (2) 添加底层驱动文件编译开关 (3) 加入编译文件 (4) 增加数据上报方式 (5)修改 ...

  2. MTK 虚拟 sensor bring up (pick up) sensor1.0

    pick up bring up sensor1.0 1.pick up对比 2.SCP 1.添加驱动文件 2.添加编译环境(打开开关) 注:编译过程中如果显示内存不够 3.修改底层数据上报方式 3. ...

  3. 高通(QCOM)sensor bring up

    高通7150平台 1.添加驱动文件 2.添加编译 3.配置json文件 4.高通默认配置 5.部分sensor外挂电源 6.遇到的问题 1.添加驱动文件 路径:adsp_proc/ssc/sensor ...

  4. MTK sensor 架构

    mtk architactureAP和scp 两部分组成从上到下的整体的结构是 app -->framerwork-->native-->hal -->kernel --> ...

  5. MTK 平台sensor arch 介绍-scp

    架构介绍 路径:vendor/mediatek/proprietary/tinysys/scp 1.[build]编译相关 2.[driver]scp 的driver,I2C,power,eint 3 ...

  6. 【转载】wifi一键配网smartconfig原理及应用

    物联网给我们又提供了一种窃取WiFi密码的好方式:让智能设备主动断线. 同时也提供一种让智能设备连接到恶意WiFi的方式:设备一键配置功能时疯狂广播恶意WiFi的信息. 转自:http://blog. ...

  7. 06_android虚拟机介绍

    分辨率不用选太高,否则会占用太大内存.你选高分辨率一跑起来会干掉你的500多MB的内存.1/8内存就没了.百分之97%或者是98%的设备都是ARM CPU.ARM自己不生产CPU,它生产的是一个标准的 ...

  8. MTK 平台sensor arch 介绍-hal

    MTK 平台sensor arch 介绍-hal 一:整体框架 二:具体流程简介 AP-HAL: (1)init & control flow 我们以前文的originchannel 的 ac ...

  9. 浅谈Android高通(Qualcomm)和联发科(MTK)平台

    一款CPU好不好是要从多个方面考虑的,并不是说简简单单看一个主频.几个核心数就完了,更重要的是它的综合实力到底有多强,这里面当然也会牵扯到价格问题,性能相似当然是便宜的获胜,这是毋庸置疑的. 事实上, ...

随机推荐

  1. idea maven web项目tomcat本地部署

    条件:1.安装jdk   2.安装tomcat idea 创建maven web项目部署在 tomcat maven plugin中 本地部署: 1.新建maven web项目 2.输入项目名称 3. ...

  2. vue在移动端的自适应布局

    一. 安装插件(lib-flexible 和 postcss-loader.postcss-px2rem) npm i lib-flexible --save npm install postcss- ...

  3. Java中数组的定义与使用(代码+例子)

    学习目标: 掌握一维数组的使用 学习内容: 1.一维数组的定义 数组(Array),是把具有 相同类型 的多个常量值 有序组织 起来的一种数据形式.这些按一定顺序排列的多个数据称为数组.而数组中的每一 ...

  4. 93. 复原 IP 地址

    做题思路or感想 这种字符串切割的问题都可以用回溯法来解决 递归三部曲: 递归参数 因为要切割字符串,所以要用一个startIndex来控制子串的开头位置,即是会切割出一个范围是[startIndex ...

  5. pip 和 Conda 镜像站配置

    如果你经常使用 Python,那么你对 pip 和 Conda 一定不陌生,它们作为包管理器,可以非常方便的帮助我们下载需要的 Python 包,但是受限于大多 Python 包的服务器在国外,国内下 ...

  6. docker更新portainer-ce2.0

    前两天,我在使用portainer的过程中发现左下角提醒有新版本的portainer需要安装,google了一圈如何升级portainer,并没有找到我需要的资料,就算获取了portainer:las ...

  7. QT-图标设置

    记录一下怎么在QT里添加图片,包括exe图标和里面使用的其他图片. 注意这个图片是指ico后缀的图片,去网上搜就有了,一大堆. 随便找的一个在线转换,http://www.bitbug.net/ 新建 ...

  8. 记录:替换线上springboot项目可执行jar包中依赖jar里的class文件

    问题背景: 项目组发现线上版本问题后,定位是由于项目依赖的某个jar包中有个小BUG. 解决方案: 在修改了对应的java文件后,编译出对应的class文件.从生产环境下载项目jar包,解压后,找到对 ...

  9. JVM虚拟机类加载机制(一)

    类从被加载到虚拟机内存中开始,到卸载出内存截止,整个生命周期包括:加载.验证.准备.解析,初始化.使用.卸载七个阶段.其中验证.准备.解析三个部分统称为连接. 类初始化情况: 遇到new.getsta ...

  10. Python简单爬取Amazon图片-其他网站相应修改链接和正则

    简单爬取Amazon图片信息 这是一个简单的模板,如果需要爬取其他网站图片信息,更改URL和正则表达式即可 1 import requests 2 import re 3 import os 4 de ...