谷动谷力

 找回密码
 立即注册
查看: 390|回复: 0
打印 上一主题 下一主题
收起左侧

MTK Genio510 platform 适配 Bosch BMA510 bringup经验分享 品佳-caobo ...

[复制链接]
跳转到指定楼层
楼主
发表于 2024-4-9 22:17:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MTK Genio510 platform 适配 Bosch BMA510 bringup经验分享


Genio510 基于sensorhub3.0 BMA510 bringup ,请按如下步骤操作:

1.scp 侧修改文件
修改如下:
/vendor/mediatek/proprietary/tinysys/scp/middleware/sensorhub/drivers/physical/accgyro/  增加贵司的驱动文件
/vendor/mediatek/proprietary/tinysys/scp/project/RV55_A/mt8188/aiot8370p1_64_bsp/project.mk  项目配置文件,宏定义
/vendor/mediatek/proprietary/tinysys/scp/project/RV55_A/mt8188/platform/platform.mk  平台配置文件,一般不用更改
/vendor/mediatek/proprietary/tinysys/scp/project/RV55_A/mt8188/platform/features/sensorhub.mk    Makefile
/vendor/mediatek/proprietary/tinysys/scp/project/RV55_A/mt8188/aiot8370p1_64_bsp/sensor/dts.c

2. 确认Sensor和Genio510的关系

通常供电有系统供应,不需要软件控制,通信方式基本是是I2C,I3C,SPI,这个具体采用哪种方式看Sensor厂商提供的确认是基于哪种通信接口。目前Genio510可以支持一组SCP I2C,一组SCP I3C,2组SCP SPI。中断控制,目前Genio510有14路GPIO可以供SCP enit使用,具体的可以参考Genio510的datesheet。

以上就是基于scp sensorhub3.0 bma510的全部移植说明。


3.代码的修改

3.1驱动添加到scp\middleware\sensorhub\drivers\physical\对应的目录下:
目录传感器类型
accgyro加速度陀螺仪
alsps光距感
magnetometer地磁
barometer气压计

3.2 dts的修改
位置:scp\project\RV55_A\mt8188\aiot8370p1_64_bsp\sensor\dts.c
  1. #ifdef CFG_BMA5XY_SUPPORT

  2.     {    .key = "name",                 .string = "bma5xy"},

  3.     {    .key = "bus_id",               .u8 = 1},

  4.     {    .key = "slave_addr",           .u8 = 0x18},

  5.     {    .key = "direction",            .u8 = 0},



  6. { .key = "eint_num", .u8 = 4},

  7. #endif
复制代码


3.3编译配置
  1. project\RV55_A\mt8188\aiot8370p1_64_bsp\project.mk

  2. CFG_BMA5XY_SUPPORT = yes
复制代码


3.4 mk修改配置
位置:project\RV55_A\mt8188\platform\features\sensorhub.mk

在mk文件中添加驱动编译的路径,要在sensor类型宏的包括范围内添加,如:
  1. ifeq ($(CFG_BMA5XY_SUPPORT),yes)
  2. INCLUDES += -I$(PHYSICAL_DRV_DIR)/accgyro/
  3. C_FILES += $(PHYSICAL_DRV_DIR)/accgyro/bma5xy.c

  4. endif
复制代码


3.5 修改 sensorlist 文件

  scp 侧配置完毕,当 kernel 请求 scp 配置时候,可以返回给 kernel,因此 kernel 的 hf_manager 可以读到对应的 sensor,但是 上层读不到,因为上层不是直接去 kernel 读 hf_manager,而是从 HAL 去读,因此需要修改 sensorlist 文件:
  1. /vendor/mediatek/proprietary/hardware/sensor/2.0/hal/SensorListV2.cpp

  2. sensor.name = "bma5xy_acc";

  3. sensor.vendor = "bosch";

  4. sensor.version = 1;

  5. sensor.handle = SENSOR_TYPE_ACCELEROMETER;

  6. sensor.type = SENSOR_TYPE_ACCELEROMETER;

  7. sensor.maxRange = 78.4532f;

  8. sensor.resolution = 0.0012;

  9. sensor.power = 0;

  10. sensor.minDelay = 2500;

  11. sensor.fifoReservedEventCount = 3000;

  12. sensor.fifoMaxEventCount = 4500;

  13. sensor.stringType = SENSOR_STRING_TYPE_ACCELEROMETER;

  14. sensor.maxDelay = 200000;

  15. sensor.flags = SENSOR_FLAG_CONTINUOUS_MODE;

  16. mSensorList.push_back(sensor);

复制代码

移植完整后,我们可以使用测试工具进行测试,可以编译Genio510的测试工具high_freq_sensor_tool, 执行如下:
  1. ./high_freq_sensor_tool -c 1,1,5000000,0
复制代码

如果有数据输出,证明sensor可以正常工作。

以上就是BMA510基于Genio510 bringup的全部过程。

+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-11-24 12:48 , Processed in 0.222491 second(s), 37 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表