当前位置: 首页 > news >正文

展讯-QMI8658和气压传感器驱动调试

1.调试QMI8658

参考demo,添加QMI8610相关内容

当前驱动路径位于:bsp/modules/input/misc/qmi8610/qmi8610.c

编译使用make sockoimage

用fastboot烧录

1.确定驱动被正常加载

代码添加之后,首先确定有没有进入当前驱动文件

dmesg |grep QmiImu_i2c_probe

因为传感器型号不一样,需要参考demo代码,移植相关代码过去,这个过程不描述了,先保证编译不报错。

2.寄存器地址修改

主要是能正常读取设备的ID,以及确定传感器获取的值在哪个位置

代码里面有相关的测试节点

对应:/sys/devices/virtual/input/input6

通过测试接口,读取设备ID以及传感器的值,确定i2c底层接口正常

3.看传感器状态

进测试模式,或者使用传感器APP

看数据是不是正常变化的

调试遇到两个问题

1.数值在乱飘,特别是Y轴数据在乱跑

这个查明,返回的数据,需要状态寄存器是可读的时候,不能随便上传

2.X和Y轴不对应

这个需要在驱动层做一下转换

2.气压传感器

1.判断驱动被正常加载

2.查看内核数据是否正常

3.移植的时候,遇到无法开机的问题

查看日志文件

11-03 13:37:57.879  1688  1688 D pressure-qmp6988: input path : /sys/class/input/input7/name
11-03 13:37:57.879  1688  1688 D pressure-qmp6988: name: gyroscope
11-03 13:37:57.879  1688  1688 D pressure-qmp6988: input path : /sys/class/input/input5/name
11-03 13:37:57.880  1688  1688 D pressure-qmp6988: name: compass
11-03 13:37:57.880  1688  1688 D pressure-qmp6988: input path : /sys/class/input/input3/name
11-03 13:37:57.880  1688  1688 D pressure-qmp6988: name: sprdphone Headset Ja
11-03 13:37:57.880  1688  1688 F libc    : FORTIFY: strlen: detected read past end of buffer
11-03 13:37:57.880  1688  1688 F libc    : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 1688 (android.hardwar), pid 1688 (android.hardwar)

从logcat来看,这里出现了问题

通过shell读取input3的name

发现少了2个字符,初步判断是数组越界了

找到对应代码

vendor/sprd/modules/sensors/libsensorclassic/press/Press_qmp6988.cpp

4.权限问题

遇到内核层有数据,但是应用层没拿到数据的问题

判断是权限问题,找到对应位置

目前应用层的权限是只读

给权限chmod 777 *

数据能正常上传

去代码里面修改设备权限问题

bsp/modules/input/misc/qmp6988/qmp6988.c

static DEVICE_ATTR(init, 0666, show_init_value, NULL);
static DEVICE_ATTR(chipinfo, 0666, show_chipinfo_value, NULL);
static DEVICE_ATTR(sensordata, 0666, show_sensordata_value, NULL);
static DEVICE_ATTR(press, 0666, show_press_value, NULL);
static DEVICE_ATTR(trace, 0666, show_trace_value, store_trace_value);
static DEVICE_ATTR(selftest, 0666, show_selftest_value, NULL);
static DEVICE_ATTR(dumpinfo, 0666, show_dumpinfo_value, NULL);
static DEVICE_ATTR(calidata, 0666, show_calidata_value, NULL);
static DEVICE_ATTR(enable, 0666, show_enable_value, store_enable_value);
static DEVICE_ATTR(delay, 0666, show_delay_value, store_delay_value);static DEVICE_ATTR(install, 0666, qmp6988_status_show, NULL);
static DEVICE_ATTR(value, 0666, show_press_value, NULL);
static DEVICE_ATTR(control, 0666, qmp6988_control_show, qmp6988_control_store);

上面的内容,直接编译会报错,需要修改内核文件

bsp/kernel/kernel4.14/include/linux/kernel.h

还要修改

bsp/kernel/kernel4.14/fs/sysfs/group.c

烧录之后正常

相关文章:

  • Maven和JAVA_HOME的关系
  • 【ajax核心04】利用async、await解决显式promise链问题
  • Java中的大数据处理与分析架构
  • 头歌——机器学习——支持向量机案例
  • 解决Windows下移动硬盘无法弹出的问题:\$Extend\$RmMetadata\$TxfLog\$TxfLog.blf
  • 红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全非约束系约束系RBCD资源系Spooler利用
  • 由 Vault 支持的 KES 的 MinIO Operator
  • 【INTEL(ALTERA)】Nios® II EDS 是否在 Windows 10 上受支持?
  • ansible copy模块参选选项
  • React useEffect 执行时机
  • 昇思25天学习打卡营第6天|使用静态图加速
  • Django 模版转义
  • LeetCode 算法:二叉树的中序遍历 c++
  • qemu 安装ubuntu22.04虚拟机 -纯命令行-可ssh-带网络-编译安装 linux kernel-编译安装 kernel module
  • 打包体积分析和优化
  • 自己简单写的 事件订阅机制
  • 〔开发系列〕一次关于小程序开发的深度总结
  • canvas 绘制双线技巧
  • const let
  • k8s如何管理Pod
  • Node + FFmpeg 实现Canvas动画导出视频
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • SOFAMosn配置模型
  • ubuntu 下nginx安装 并支持https协议
  • 给初学者:JavaScript 中数组操作注意点
  • 前端面试总结(at, md)
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • (1)虚拟机的安装与使用,linux系统安装
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (C11) 泛型表达式
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Ruby)Ubuntu12.04安装Rails环境
  • (八)Spring源码解析:Spring MVC
  • (超详细)语音信号处理之特征提取
  • (理论篇)httpmoudle和httphandler一览
  • (南京观海微电子)——COF介绍
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (十一)图像的罗伯特梯度锐化
  • *上位机的定义
  • .net知识和学习方法系列(二十一)CLR-枚举
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [Android]常见的数据传递方式
  • [BZOJ]4817: [Sdoi2017]树点涂色
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [CDOJ 1343] 卿学姐失恋了
  • [ComfyUI进阶教程] animatediff视频提示词书写要点
  • [github配置] 远程访问仓库以及问题解决
  • [HJ56 完全数计算]
  • [HTML API]HTMLCollection
  • [HUBUCTF 2022 新生赛]