当前位置: 技术问答>linux和unix
100分请教高手一个 android串口控制台和i2c超时的问题(本人结贴率达到90%)
来源: 互联网 发布时间:2017-01-11
本文导语: 请教高手:android系统,在内核中用i2c协议往从设备写数据;当这一个写操作的命令是从串口控制台发起的话,I2C写不会出现超时的问题,但是当这一个命令是在apk包中调用时i2c写操作有时就会出现超时。。。。不知...
请教高手:android系统,在内核中用i2c协议往从设备写数据;当这一个写操作的命令是从串口控制台发起的话,I2C写不会出现超时的问题,但是当这一个命令是在apk包中调用时i2c写操作有时就会出现超时。。。。不知系统调度是怎样的,什么原因导致i2c超时?
|
能具体点说一下是APK中直接控制内核I2C写么??
我调试过几个I2C设备在android上的应用,一般都是APK应用控制HAL或JNI这这些里面控制底层设备接口,然后又内核层调用I2C写设备数据的。 没有出现写TIME OUT。。
你这个直接在APK中控制 应用层啊,泡在虚拟机上的。。这样可能有问题的。你可以参考摄像头来做吧。
APK——》framework--->libcamera---》V4L2----》FIMC-----》驱动(这里实现接口I2C写设备)
|
i2c以SMBus的模式运行就有超时的概念。不知你的设备上是否是以SMBus的方式来用的。
问题可能是i2c时钟速率太低,增加到10K以上应该没问题了。
俺没用过安卓,纯属猜测。
问题可能是i2c时钟速率太低,增加到10K以上应该没问题了。
俺没用过安卓,纯属猜测。
|
但是当这一个命令是在apk包中调用时i2c写操作有时就会出现超时?? 是什么意思
|
串口i2c读写操作是最常用的,可以理解为Linux内核让串口与从设备直接对话,直接对从设备操作。
但是apk是跑在虚拟机上的最上上上上的应用哇,在应用中要把数据传回到底层,等待接收来自从设备的回复后,才会继续执行,你觉得写完美的几率有多大
但是apk是跑在虚拟机上的最上上上上的应用哇,在应用中要把数据传回到底层,等待接收来自从设备的回复后,才会继续执行,你觉得写完美的几率有多大