赞
踩
上图是展锐平台sensor hub 的整体架构图。
sensor hub 分为三部分,AP、sensor hub、sensors。
外部的 sensor IC 通过 I3C、I2C、SPI 挂载于 sensor hub 核,sensor hub 核通过 SIPC 通讯方式与 AP 核进行交互。
对于图中各部分模块的解释:
进入bsp目录,执行命令source build/envsetup.sh,并执行命令lunch,选择要编译的工程。
对于不同类型的工程,分别执行命令make sensorhub 或 make contexthub。
生成的可执行产物分别在目录:bsp/sensorhub/public/build/(项目名) 下
或者bsp/contexthub/out/(项目名)/(board 名) 下
工程功能宏文件defconfig在目录:bsp/sensorhub/public/project/(项目名) 下
或bsp/contexthub/device/CH/(项目名)/(board 名)/ 下
可直接修改defconfig文件来配置功能宏。
同时也可以使用make sensorhub_menuconfig 或者make contexthub_menuconfig 命令进行功能宏配置(可以避免功能宏之间的依赖导致的错误)。
方法如下:
驱动代码目录:bsp/sensorhub/public/sensor_hub_sprd/public/system/sensor_driver
或bsp/contexthub/modules/sensorhub/sensor_hub_sprd/public/system/sensor_driver
之后以contexthub中的驱动为例:
在对应sensor类型中添加驱动代码
以color_drivers为例,添加完驱动代码之后,需要在该sensor类型目录下的.cmake文件和Kconfig文件中添加对应代码。
Kconfig文件添加举例如下:
config COLOR_TCS34303_SUPPORT
bool "COLOR_TCS34303_SUPPORT"
depends on SPRD_SENSOR_HUB_SUPPORT
help
color tcs34303 support status
在各项目的 defconfig 文件中,将该型号 sensor 的功能宏默认配置为关闭。
.cmake文件添加举例如下:
if(CONFIG_COLOR_TCS34303_SUPPORT)
list(APPEND SRCS
"${COLOR_DRIVERS_PATH}/tcs34303/sensor_driver_color_tcs34303.c"
"${COLOR_DRIVERS_PATH}/tcs34303/color_tcs34303.c"
)
endif()
使用 list(APPEND SRCS xxx)追加驱动文件到 SRCS,并用新增的功能宏控制该修改。
使用 cp_library_include_directories()声明需要用到的头文件路径。
使用 cp_append_export_library()声明需要用到的库文件。
对于同一个项目,同样类型的 sensor 有多个供应商,但 sensor hub 有限的 SRAM 空间难以兼容太多 sensor 驱动。
为解决这个问题,引入 memory overlay 方案。
在配置sensor hub 功能宏时,依次选择 sensorhub config > SPRD Sensor Module Configurations。
勾选 SENSORS_DRIVER_OVERLAY,根据页面提示保存并退出。
以color_drivers中的驱动为例,在 color_tcs34303.c 中添加 sensor overlay 管理及 sensor 初始化注册程序。
#include "sensor_driver_color_tcs34303.h"
#ifdef CONFIG_SENSORS_DRIVER_OVERLAY
#include "color_overlay.h"
overlay_color_driver_init(tcs34303, color_tcs34303_sensor_init);
#else // CONFIG_SENSORS_DRIVER_OVERLAY
DRIVER_INIT(color_tcs34303_sensor_init);
#endif //CONFIG_SENSORS_DRIVER_OVERLAY
在链接脚本(lds 文件)中将每一供的驱动都加入编译。
在目录:bsp/sensorhub/public/ms_customize/
或 bsp/contexthub/device/CH/(项目名)/(board 名)/
中新增多供。
修改对应目录下的编译脚本,分别对 text 段、data 段、bss 段 overlay 声明驱动。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。