Android I2c-Tools 編譯和使用


參考:Android 平台下使用 i2c-tools

前文

首先介紹幾個網站
I2C Tools wiki 官方wiki (https://i2c.wiki.kernel.org/index.php/I2C_Tools)
wiki 直接下載壓縮包列表網址 (https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/)
kernel 的i2c-tools 主線在線閱讀log(https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/

Android編譯

下載源碼后放在任意目錄(我放在android/vendor/i2c-tools)
在目錄下新建Android.mk

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := eng
LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
LOCAL_SRC_FILES := tools/i2cbusses.c tools/util.c
LOCAL_MODULE := i2c-tools
include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES:=tools/i2cdetect.c
LOCAL_MODULE:=i2cdetect
LOCAL_CPPFLAGS += -DANDROID
LOCAL_SHARED_LIBRARIES:=libc
LOCAL_STATIC_LIBRARIES := i2c-tools
LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES:=tools/i2cget.c
LOCAL_MODULE:=i2cget
LOCAL_CPPFLAGS += -DANDROID
LOCAL_SHARED_LIBRARIES:=libc
LOCAL_STATIC_LIBRARIES := i2c-tools
LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES:=tools/i2cset.c
LOCAL_MODULE:=i2cset
LOCAL_CPPFLAGS += -DANDROID
LOCAL_SHARED_LIBRARIES:=libc
LOCAL_STATIC_LIBRARIES := i2c-tools
LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES:=tools/i2cdump.c
LOCAL_MODULE:=i2cdump
LOCAL_CPPFLAGS += -DANDROID
LOCAL_SHARED_LIBRARIES:=libc
LOCAL_STATIC_LIBRARIES := i2c-tools
LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
include $(BUILD_EXECUTABLE)

mm 在android/out/目錄生成bin文件

問題 如何引用到kernel的iic頭文件的定義的$(LOCAL_PATH)/$(KERNEL_DIR)/include

使用

  • i2cdetect
    探測 iic 4總線上掛載哪些設備地址
./i2cdetect -r -y 4                           
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
  • i2cdump
    查看iic 4總線上0x49設備的寄存器值
./i2cdump -f -y 4 0x49                          
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 00 00 00 05 00 00 00 00 00 00 80 00 00 00    .....?......?...
10: 00 00 00 00 00 00 00 00 83 00 01 00 8c 00 04 c0    ........?.?.?.??
20: 00 00 00 00 10 10 ff ff 7f 04 00 00 00 00 00 00    ....??..??......
30: 00 00 00 00 00 00 00 00 00 00 00 00 42 ff 00 00    ............B...
40: 00 00 00 af 00 00 00 00 00 80 00 07 00 00 00 00    ...?.....?.?....
50: 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00    ..@.............
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 cc 30 80 01 02 26    ..........?0???&
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 ff    ................
90: 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 cc 30 80 01 02 26 81 6d 6e ea 3e 00 00 00 00    .?0???&?mn?>....
d0: 00 00 00 00 00 20 00 00 00 00 00 00 08 00 00 00    ..... ......?...
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 01 00 00 00 44 00 04 01 bc    .......?...D.???
  • i2cget
    獲取iic 4總線上0x49設備的0x18寄存器 的值
./i2cget -f -y 4 0x49 0x18                      
0x83
  • i2cset
    設置iic 4總線上0x49設備的0x18寄存器 的值
# ./i2cset -f -y 4 0x49 0x18 0x88  //設置               
#./i2cget -f -y 4 0x49 0x18                                                     <
0x88


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM