MTK平台Sensor Bring Up

sensor的img位于scp.img

9.1、在成熟的平台Bring Up

在已知的平台上驱动并验证一个器件是很常见的工作。因为管脚等基本不需要重新配置。所以只需要按照一般步骤驱动即可。驱动代码位置:

vendor/mediatek/proprietary/tinysys/freertos/source/middleware/contexthub/MEMS_Driver/accGyro/

生成.o文件位置:

out/target/product/****/obj/TINYSYS_OBJ/tiny-scp_inermediates/freertos/source/CM4_A/middleware/contexthub/MEMS_Driver/accGyro

首先将驱动代码的.c文件放入驱动代码位置。之后修改下面说明的几个位置:

9.1.1、添加CFG_SENSOR_SUPPORT

vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/****/****/projectConfig.mk

添加

CFG_SC7A20_SUPPORT = yes

9.1.2、添加器件总线和其他信息

vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/****/****/cust/accGyro/cust_accGyro.c

添加

#ifdef CFG_SC7A20_SUPPORT

{

.name = "sc7a20",

.i2c_num = 0;

.i2c_addr = {0x18, 0},

.direction = 3,

.eint_num = 12,

}

如果Sensor使用的是I2C,不管硬件上对应I2C总线几,此处i2c_num要写0,因为在这个平台下SensorHub侧只有一个I2C。如果是SPI总线,写成下面这个样子:

.i2c_num = 1;

.i2c_addr = {0, 0},

至少包含name、i2c总线、i2c地址就可以被驱动正常读取。

9.1.3、overlay

vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/****/****/inc/overlay_sensor.h

添加

#define OVERLAY0 \

OVERLAY_ONE_OBJECT(sc7a20, sc7a20)

vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/****/****/cust/overlay/overlay.c

添加

ACC_GYRO_OVERLAY_REMAP(sc7a20);

9.1.4、驱动编译

vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/****/****/platform/feature_config/chre.mk

添加

ifeq($(CFG_SC7A20_SUPPORT),yes)

C_FILES += $(SENDRV_DIR)/accgyro/sc7a20.c

endif

9.2、Sensor驱动调试

9.2.1、加速度方向调试

于加速度和磁传感器,方向是一个很重要的参数:这是一个0~7的整数数据由于这两种Sensor都有x y z三个轴,每个轴都有正负两种情况,2^3=8,所以±x ±y ±z共有8种组合。最直接的方法是把0~7这8个数值都试一遍,看哪个结果正确就用哪个数值。

9.2.2、eint_num

中断号,这里某些Sensor会提供一个中断脚,来通知主机数据准备完毕。此处中断号直接填写这个Sensor所使用的中断管脚号即可。

9.2.3、地磁三方库的所在位置

# add for Msensor

PRODUCT_COPY_FILES += device/mediatek/****/ThirdParty/mmc5603nj_lib/32bit/libmemsic.so:$(TARGET_COPY_OUT_VENDOR)/lib/libmemsic.so

# end for Msensor

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值