1.调试QMI8658
参考demo,添加QMI8610相关内容
当前驱动路径位于:bsp/modules/input/misc/qmi8610/qmi8610.c
编译使用make sockoimage
用fastboot烧录
1.确定驱动被正常加载
代码添加之后,首先确定有没有进入当前驱动文件
因为传感器型号不一样,需要参考demo代码,移植相关代码过去,这个过程不描述了,先保证编译不报错。
2.寄存器地址修改
主要是能正常读取设备的ID,以及确定传感器获取的值在哪个位置
代码里面有相关的测试节点
对应:/sys/devices/virtual/input/input6
通过测试接口,读取设备ID以及传感器的值,确定i2c底层接口正常
3.看传感器状态
进测试模式,或者使用传感器APP
看数据是不是正常变化的
调试遇到两个问题
1.数值在乱飘,特别是Y轴数据在乱跑
这个查明,返回的数据,需要状态寄存器是可读的时候,不能随便上传
2.X和Y轴不对应
这个需要在驱动层做一下转换
2.气压传感器
1.判断驱动被正常加载
2.查看内核数据是否正常
3.移植的时候,遇到无法开机的问题
查看日志文件
从logcat来看,这里出现了问题
通过shell读取input3的name
发现少了2个字符,初步判断是数组越界了
找到对应代码
4.权限问题
遇到内核层有数据,但是应用层没拿到数据的问题
判断是权限问题,找到对应位置
目前应用层的权限是只读
给权限chmod 777 *
数据能正常上传
去代码里面修改设备权限问题
bsp/modules/input/misc/qmp6988/qmp6988.c
上面的内容,直接编译会报错,需要修改内核文件
bsp/kernel/kernel4.14/include/linux/kernel.h
还要修改
bsp/kernel/kernel4.14/fs/sysfs/group.c
烧录之后正常