
Android I2c-Tools安装使用说明
发布日期:2021-05-07 13:26:55
浏览次数:23
分类:精选文章
本文共 2063 字,大约阅读时间需要 6 分钟。
将 i2c-tools 代码下载到 Android 源码的 external 目录下,在 i2c-tools 目录下新建 文件,内容如下:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := engLOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/includeLOCAL_SRC_FILES := tools/i2cbusses.c tools/util.cLOCAL_MODULE := i2c-toolsinclude $(BUILD_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := engLOCAL_SRC_FILES:=tools/i2cdetect.cLOCAL_MODULE:=i2cdetectLOCAL_CPPFLAGS += -DANDROIDLOCAL_SHARED_LIBRARIES:=libcLOCAL_STATIC_LIBRARIES := i2c-toolsLOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/includeinclude $(BUILD_EXECUTABLE)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := engLOCAL_SRC_FILES:=tools/i2cget.cLOCAL_MODULE:=i2cgetLOCAL_CPPFLAGS += -DANDROIDLOCAL_SHARED_LIBRARIES:=libcLOCAL_STATIC_LIBRARIES := i2c-toolsLOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/includeinclude $(BUILD_EXECUTABLE)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := engLOCAL_SRC_FILES:=tools/i2cset.cLOCAL_MODULE:=i2csetLOCAL_CPPFLAGS += -DANDROIDLOCAL_SHARED_LIBRARIES:=libcLOCAL_STATIC_LIBRARIES := i2c-toolsLOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/includeinclude $(BUILD_EXECUTABLE)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := engLOCAL_SRC_FILES:=tools/i2cdump.cLOCAL_MODULE:=i2cdumpLOCAL_CPPFLAGS += -DANDROIDLOCAL_SHARED_LIBRARIES:=libcLOCAL_STATIC_LIBRARIES := i2c-toolsLOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/includeinclude $(BUILD_EXECUTABLE)
然后 Android根目录:
source build/envsetup.sh cd external/i2c-tools mm
编译后在 out/target/product/xxx/system/bin目录下生成4个可执行程序:
i2cdetecti2cdumpi2cgeti2cset
通过 adb push 之间将编译生成的4个文件复制到 Android 平台的 /system/bin 目录下。 在 abd pusll 之前,要先将 system 分区 remount 成可写入模式。
adb shellcd system/bin
用i2cdetect检测有几组i2c总线在系统上:
i2cdetect -l
用i2cdetect检测挂载在i2c_n总线上器件:
i2cdetect-r -y 0 i2cdetect-r -y 1...
用i2cget获取挂在在i2c总线上的设备中某个寄存器中的值
如: 获取 i2c2下设备地址为 0x24 ,寄存器地址为0x0a中的数值i2cget -y -f 2 0x24 0x0a0x7f
读取 0x34地址设备的 0x28寄存器值
/system/bin # i2cget -f -y 0 0x34 0x28
向地址为0x34的设备 的0x24地址 寄存器 写入 0xfb
/system/bin # i2cset -f -y 0 0x34 0x28 0xfb