光距感 stk3310 调试


1. 一般高通代码驱动适合自己的HAL层框架,驱动也要适应其框架。最主要的是sys注册的文件节点,HAL层通过统一的方式去读取文件节点,这样就具备通用性,后面直接添加驱动就好了。
首先要了解一下sensor的框架,从最底层到应用层中间会经过:kernel -> hal -> framework -> app,所以调试驱动要一层一层的取保数据正常,那就基本上没什么问题了。

2.调试需要注意的几点
2.1.保证驱动数据正常,上报的数据正常。
2.2.注册的设备名字和hal层sensor读取的文件节点一致。sensor注册的文件节点名字用getevent可以查看。
用 adb shell getevent 得到如下显示:
add device 4: /dev/input/event3
name: "stk8313"
add device 5: /dev/input/event0
name: "Goodix-TS"
could not get driver version for /dev/input/mice, Not a typewriter
add device 6: /dev/input/event2
name: "proximity"
add device 7: /dev/input/event1
name: "light"

从上面可以看出,
add device 4 G-sensor
add device 5 TP
add device 6 P-sensor
add device 7 L-sensor

2.3.用getevent /dev/input/event1 查看是否有数据,手动使能,一般节点在sys/class/input/input*/enable 若得不到数据,那就是驱动层有问题,因为getevent 读取数据是kernel层的数据,还没到hal层。
2.4.应用层若读不到数据,那就是HAL层的问题。

3.hal层调试
hal层主要根据各种sensor去读取数据,多添加log打印,主要看enable和readeven事件,是否调用,若果没调到enable,查看logcat,应该会出现E/SensorManager( 2276): sensor or listener is null 这样的错误,就表示HAL层没有读到此设备,需要修改。

注意:若果驱动层的数据正常,getevent没数据,那就要检查驱动上报数据是否有变化,若没有变化,getevent是看不到数据的。
所以要检查上报的数据是否成功,上报的数据逻辑有无问题
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值