zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    selenium webdriver简介
    web自动化selenium环境搭建
    web自动化基础之web页面组成
    接口测试基础八--接口自动化前期准备
    小程序测试关注点之一-登录授权
    python实现十大经典算法
    pytest 框架之pytest-html报告生成
    pytest 框架与 unittest 框架的对比
    selenium _上传操作
    selenium 常见操作,使用 js 操作-日期框及文本框
  • 原文地址:https://www.cnblogs.com/rootshaw/p/13565922.html
Copyright © 2011-2022 走看看