联发科 (MTK) sensor bring up
MT6768平台
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.遇到的问题
- 添加硬件配置时,如果协议是spi时,误将”.i2c_num”改为“.spi_num“,没有”.spi_num“这种写法,是根据值来判断使用的是哪个协议。
- I2c地址写错,当时因为项目资料i2c通讯规格书上的i2c地址为0x46, 但是实际上该传感器的数据手册却是0x48,所以导致i2c通讯失败,改正后通讯成功。
(注:I2c通讯地址以IC数据手册为准) - scp空间不足报错,根据log更改空间大小后编译通过。
- 兼容配置时overlay_sensor.h里添加驱动名字后没有添加连接符,导致编译报错,查看平台其它自带传感器配置添加后编译通过。
- 修改中断脚后却不生效,删掉out目录后重编生效。
联发科 (MTK) sensor bring up的更多相关文章
- MTK 虚拟 sensor bring up (pick up) sensor2.0
pick up bring up sensor2.0 1.SCP侧的配置 (1) 放置驱动pickup.c (2) 添加底层驱动文件编译开关 (3) 加入编译文件 (4) 增加数据上报方式 (5)修改 ...
- MTK 虚拟 sensor bring up (pick up) sensor1.0
pick up bring up sensor1.0 1.pick up对比 2.SCP 1.添加驱动文件 2.添加编译环境(打开开关) 注:编译过程中如果显示内存不够 3.修改底层数据上报方式 3. ...
- 高通(QCOM)sensor bring up
高通7150平台 1.添加驱动文件 2.添加编译 3.配置json文件 4.高通默认配置 5.部分sensor外挂电源 6.遇到的问题 1.添加驱动文件 路径:adsp_proc/ssc/sensor ...
- MTK sensor 架构
mtk architactureAP和scp 两部分组成从上到下的整体的结构是 app -->framerwork-->native-->hal -->kernel --> ...
- MTK 平台sensor arch 介绍-scp
架构介绍 路径:vendor/mediatek/proprietary/tinysys/scp 1.[build]编译相关 2.[driver]scp 的driver,I2C,power,eint 3 ...
- 【转载】wifi一键配网smartconfig原理及应用
物联网给我们又提供了一种窃取WiFi密码的好方式:让智能设备主动断线. 同时也提供一种让智能设备连接到恶意WiFi的方式:设备一键配置功能时疯狂广播恶意WiFi的信息. 转自:http://blog. ...
- 06_android虚拟机介绍
分辨率不用选太高,否则会占用太大内存.你选高分辨率一跑起来会干掉你的500多MB的内存.1/8内存就没了.百分之97%或者是98%的设备都是ARM CPU.ARM自己不生产CPU,它生产的是一个标准的 ...
- MTK 平台sensor arch 介绍-hal
MTK 平台sensor arch 介绍-hal 一:整体框架 二:具体流程简介 AP-HAL: (1)init & control flow 我们以前文的originchannel 的 ac ...
- 浅谈Android高通(Qualcomm)和联发科(MTK)平台
一款CPU好不好是要从多个方面考虑的,并不是说简简单单看一个主频.几个核心数就完了,更重要的是它的综合实力到底有多强,这里面当然也会牵扯到价格问题,性能相似当然是便宜的获胜,这是毋庸置疑的. 事实上, ...
随机推荐
- python爬虫---爬取网易云音乐
代码: import requests from lxml import etree text = requests.get("https://music.163.com/discover/ ...
- 关于根据数据反选checkbox
前两天完成了一个连接hbase数据库的mis系统,mis系统中经常需要修改功能,复选框.多选框等等的自动勾选,感觉很麻烦,在此记录一下修改功能checkbox自动选中. 例子: <div cla ...
- 【Android开发】jarsigner重新打包apk
签名(sign):在应用程序的特定字段写入特定的标记信息,表示该软件已经通过了签署者的审核. 过程:使用私有密钥数字地签署一个给定的应用程序. 作用: 识别应用程序作者: 检測应用程序是否发生改变: ...
- ubantu系统之快捷键使用
1. 文件管理器中,目录切换为可以编辑的状态: ctrl + l 2. gedit 搜索 : ctrl + h
- vuejs兄弟组件之间的通信
var Event = new Vue();//准备一个空的实例对象 //A组件 var A = { template: ` <div> <span>我是A组件的数据-> ...
- numpy教程03---ndarray的运算
欢迎关注公众号[Python开发实战], 获取更多内容! 工具-numpy numpy是使用Python进行数据科学的基础库.numpy以一个强大的N维数组对象为中心,它还包含有用的线性代数,傅里叶变 ...
- C++---初识C++
C和C++的关系 C语言是结构化和模块化的语言, 面向过程. C++是在C语言的基础上, 增加了面向对象的机制, 并对C语言的功能进行了扩充. 变量的定义可以出现在程序中的任何行 提供了标准输入输出流 ...
- Eureka Server 的 Instance Status 一直显示主机名问题
Eureka Server 的 Instance Status 一直显示主机名问题 注册中心启动后,访问 http://localhost:8761/ 后: 如何调整为具体所在的服务器 IP 呢? 解 ...
- 在线操作word和在线预览查找的资料记录
在线操作word和在线预览查找的资料记录 在线操作word查找的资料记录 富文本操作 http://fex.baidu.com/ueditor/ 控件类 通过 js 调用控件操作 word 文档 1. ...
- DjangoRestFramework框架三种分页功能的实现 - 在DjangoStarter项目模板中封装
前言 继续Django后端开发系列文章.刚好遇到一个分页的需求,就记录一下. Django作为一个"全家桶"型的框架,本身啥都有,分页组件也是有的,但默认的分页组件没有对API开发 ...