第一章 平台及硬件信息简介

本文档基于ums312(T310),Android 11,sensorhub架构,sensor的硬件接口为i2c1(该平台目前不支持spi)

第二章 紫光展锐的移植文档

第三章 sensor厂家提供的代码

代码在共享的资源中有《加速度&陀螺仪+光距感+地磁驱动.zip》。

3.1 地磁(AF6133E)的驱动–需要动态加载

3.2 光距感(STK33562)的驱动–需要动态加载

3.3 加速度&陀螺仪(icm40607)的驱动–不需要动态加载

第四章 动态驱动的编译工具及配置

编译工具:EmBitz_1.11.zip;在共享的资源中有。
使用EmBitz创建和编译工程按文档《33457_Android11.0EmBitz编译Sensorhub动态加载驱动介绍V1.3.pdf》中的操作,下面是添加工程文件:
1、导入编译文件(导入方法按文档中的3.3中的方式操作)
需要导入的文件是:使用Embitz编译的文件,包括地磁驱动overlay_types.h、patch_table_sensor.c、vtc_algo.a、vtc_algo.h、vtc_cali.ld及光距感patch_table_sensor.c,其中光距感patch_table_sensor.c暂时不要导入
2、添加链接脚本,即vtc_cali.ld
3、编译工程生成elf文件,如果没有生成该文件说明以上配置有问题(光距感patch_table_sensor.c先不要加工程)
4、生成elf格式文件后,需要将elf文件转成bin文件,操作如下:
4.1 桌面右键Embitz,打开文件所在位置,找到如下图所示文件

4.2 打开Embitz软件,点击project->Build Options ->选择 Pre/post build steps 中的Post build steps,将 disable 置为 always

4.3 配置编译工具

配置内容格式为:objcopy.exe所在位置 -O binary elf文件所在位置 生成bin文件的位置,如:
C:\Program Files (x86)\EmBitz\1.11\share\em_armgcc\arm-none-eabi\bin\objcopy.exe -O binary E:\ums312_sensorhub\7_5_sh_driver\7_5_sh_driver\bin\Release\7_5_sh_driver.elf E:\ums312_sensorhub\7_5_sh_driver\7_5_sh_driver\bin\Release\7_5_sh_driver.bin

4.4 再次点击编译就可以发现重新生成elf文件后会同时生成bin文件

第五章 动态驱动编译及二进制bin文件

动态驱动的编译就是为了生成bin文件,但以上工程,编译了地磁的驱动,现在需要将光距感的驱动加入
1、基本原理:光距感和地磁都有patch_table_sensor.c文件,且作用都是实现了overlay_types.h中定义的结构体struct patch_table_sensor中的函数,只要将patch_table_sensor.c文件内容进行整合就行,实现完整的struct patch_table_sensor dynamic_driver_interface结构体
2、注意名称的对应关系,否则无法使用

3、重新编译,就可以生成具有包含了地磁和光距感功能的bin文件

第六章 opcode驱动代码

6.1 配置Sensor型号

路径:device/sprd/(平台名)/(工程名)/module/sensor/md.mk
示例:
以UMS512平台为例,路径为device/sprd/sharkl5Pro/ums512_1h10/module/sensor/md.mk
SENSOR_HUB_ACCELEROMETER := lsm6dsl_ums512
SENSOR_HUB_GYROSCOPE := lsm6dsl
SENSOR_HUB_LIGHT := ltr578als ltr553als
SENSOR_HUB_MAGNETIC := akm09918_ums512
SENSOR_HUB_PROXIMITY := ltr578als
SENSOR_HUB_PRESSURE := null
说明:
赋值的名字需与opcode文件名中的(Sensor型号)一致。
赋值null表示不支持此类型Sensor。
同类型Sensor,如需兼容多个型号,型号以空格隔开,如上面LIGHT所示,同时兼容ltr578als和ltr553als。

6.2 增加对应Sensor参数配置文件(opcode)

路径:vendor/sprd/modules/sensors/libsensorhub/ConfigSensor/(Sensor类型)/
在路径中增加(Sensor类型)_(Sensor型号).cpp文件。
示例:
以ums512_1h10工程添加加速计lsm6dsl为例,增加文件:
vendor/sprd/modules/sensors/libsensorhub/ConfigSensor/accelerometer/accelerometer_lsm6dsl_ums512.cpp
说明:(Sensor型号)需与device路径下的工程配置中的Sensor类型赋值一致。

6.3 注册opcode接口

路径:vendor/sprd/modules/sensors/libsensorhub/ConfigSensor/
示例:
以加速度计lsm6dsl为例。
• 在SensorHubOpCodeExtrator.h中增加以下代码:
extern void SensorHubOpcodeRegisterAccelerometer_lsm6dsl();
• 在SensorHubOpCodeExtrator.cpp中增加以下代码:
#ifdef SENSORHUB_WITH_ACCELEROMETER_lsm6dsl
strcat(accelerometer_list, “accelerometer_lsm6dsl,”);
SensorHubOpcodeRegisterAccelerometer_lsm6dsl();
#endif

6.4 配置Native MMI工模菜单

如使用展锐提供的关机工模和工厂板级自动化测试方案,需要对工模以及bbat需支持的测试项进行配置。如对UMS512平台
ums512_1h10工程进行配置,此工程支持加速计、陀螺仪、地磁、光感、距感。在下述文件中,将支持的配置项置1,不支持的置0。 • device/sprd/sharkl5Pro/ums512_1h10/module/engpc/prodnv/PCBA.conf
• device/sprd/sharkl5Pro/ums512_1h10/module/engpc/prodnv/BBAT.conf
示例:
31 1 ACCSOR
表示支持加速计功能测试
32 1 MAGSOR
表示支持对地磁传感器的功能测试
36 0 PRESSOR
表示不支持对气压计的测试
4.配置Native MMI工模菜单
说明:其他Sensor相关英文简写含义如下,请根据实际情况仿照上述示例进行配置。 • GYRSOR:陀螺仪功能测试
• LSENSOR:光感功能测试
• PXYSOR:距感功能测试
• CALI_ACCOSOR:加速计校准
• CALI_GYRSOR:陀螺仪校准
• CALI_MAGSOR:地磁校准(暂未使用) • CALI_PROSOR:距感校准
• CALI_LSOR:光感校准

6.5 拷贝动态加载bin

如果使用了动态加载驱动,需要在编译阶段将已经编译好的动态加载驱动bin拷贝到$(TARGET_COPY_OUT_VENDOR)/firmware/目录,
并改名为EXEC_CALIBRATE_MAG_IMAGE。
示例:
ums512_1h10工程配置中需要使用akm09918_cali_img_l5p.bin:
device/sprd/sharkl5Pro/ums512_1h10/module/sensor/md.mk

PRODUCT_COPY_FILES +=
vendor/sprd/modules/sensors/libsensorhub/ConfigSensor/calibration/mag_cali/akm09918_cali_img_l5p.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/EXEC_CALIBRATE_MAG_IMAGE

opcode移植请参考《33445_Android11.0SensorHub客制化指导手册V1.2.pdf》

第七章 代码提交记录

vendor/sprd/modules/sensors路径下:

device/sprd/sharkl5路径下:

紫光展锐驱动之sensorhub调试相关推荐

  1. 紫光物联linux登录账号,紫光展锐打造操作系统生态,赋能万物互联智能时代

    本周,以"象由芯生·科技服务人民"为主题的2020紫光展锐市场峰会重磅开启,广大生态合作伙伴共聚一堂,共话数字世界新未来. 在今天举办的"操作系统OS研讨会"上 ...

  2. 赋能网安生态通信服务器操作系统,紫光展锐打造操作系统生态,赋能万物互联智能时代...

    本周,以"象由芯生·科技服务人民"为主题的2020紫光展锐市场峰会重磅开启,广大生态合作伙伴共聚一堂,共话数字世界新未来. 在今天举办的"操作系统OS研讨会"上 ...

  3. 紫光展锐【软件工程师】面经

    HR面(10min) 1.咨询工作意向地. 2.现在有多少个offer? 3.为什么想来紫光展锐? 4.为什么想去工作意向地,能接受调剂吗? 技术面(20min) 1.面试官翻了一下简历,稍微问了一些 ...

  4. 紫光展锐发布系统级安全的高性能5G SoC移动平台T820

    紫光展锐正式发布系统级安全的高性能5G SoC 新品T820,采用八核CPU架构,6nm EUV先进工艺,金融级全内置安全方案,5G双卡双待和稳定高速的5G连接,以及1.08亿像素高清摄像头,FHD+ ...

  5. 紫光展锐启动全新品牌,进击“芯时代”,锐意新辉煌

    6月13日,紫光集团旗下核心企业紫光展锐宣布发布全新的品牌标识及定义,代表着吸纳了展讯和锐迪科两家高科技企业的紫光展锐正式完成协同整合,它已为在全球芯片市场即将进入万物互联的5G新时代做好了准备,其将 ...

  6. 聚焦全球一体化测试服务,紫光展锐正式发布I C TEST品牌

    南京2018年9月19日电 /美通社/ -- 在南京市江北新区主办.紫光集团和紫光展锐承办的主题为"芯时代·共成长"的"2018中国芯片发展高峰论坛"上,紫光展 ...

  7. 紫光展锐展讯SPRD刷机包pac文件解包提取img步骤

    UNISOC_SPRD_PAC_UNPAC 紫光展锐展讯SPRD刷机包pac文件解包提取img文件. Extract Images from .pac file from Spreadtrum Uni ...

  8. 紫光展锐----面经

    ----------基本情况----------- 1.自我介绍(中+英) 2.介绍项目 3.介绍实习 4.做过什么课题研究 以及 研究方向? 5.学校学习了什么课程? C语言 计算机网络 数电 模电 ...

  9. MWC 2023 | 紫光展锐联合中国联通、通则康威、广和通重磅发布两大新品

    西班牙巴塞罗那当地时间2月27日上午,紫光展锐联合中国联通.通则康威.广和通等生态合作伙伴,共同发布中国联通第二代5G CPE-VN009及中国联通雁飞eSIM模组-VN200.紫光展锐CEO任奇伟. ...

最新文章

  1. HTML5 canvas drawImage() 方法记录
  2. T-SQL的高级查询详解(一)--函数的综合应用
  3. JS实现逼真的雪花飘落特效
  4. View、Text、Button的drawableLeft左侧图片自定义大小
  5. java中 下列不合法的语句_在Java中,下列( )是不合法的赋值语句。_学小易找答案...
  6. spark work启动失败
  7. UML全程实训(2012-7-7 广州)
  8. android5.1去掉开机锁屏
  9. http://blog.csdn.net/jiazimo/article/details/17265061
  10. 『nForce主板』巧妙去掉“安全删除硬盘”图标!
  11. Spring AOP原理分析(一)-- AOP相关概念
  12. 爬取淘宝商品评论——2020-8月
  13. 实操:(附环摄数据及三维模型)如何利用Smart3D将二维照片转换成三维模型?
  14. python之 ffmpeg合并ts视频为mp4视频
  15. 用计算机打字怎么打括号,键盘的输入问题
  16. adobe登录无法连接服务器未响应,adobe链接不到服务器
  17. ClassLayout ,JOL Maven地址及锁64位状态图
  18. PCIE,USB传输速率和带宽
  19. 如何简单理解贝叶斯决策理论(Bayes Decision Theory)
  20. java-php-python-ssm计算机专业招聘网站计算机毕业设计

热门文章

  1. UC开放平台要让信息流无处不在,与百度思路有何不同?
  2. 构建、运行、增长,亚马逊云科技发布游戏行业解决方案
  3. 2021年低压电工考试题库及低压电工模拟考试题库
  4. DOM(文档对象模型)
  5. html更改表单按钮文字,HTML进阶应用技巧(十)用好表单的按钮
  6. CascadePSP:解决4K超高分辨率图像的分割,简单实用 | CVPR2020
  7. webservice 实现json模式
  8. java学习---新手笔记,多多包涵
  9. 微信开放平台之第三方平台代公众号发起网页授权
  10. 【什么办公软件好用】万彩办公大师教程丨图像拼接大师的应用