Android:i2c调试工具 i2c-tools的使用以及在Android external目录下新增一个可执行应用及编译

   

      Android:i2c调试工具 i2c-tools的使用以及在Android external目录下新增一个可执行应用及编译

 

一、使用i2c-tools工具让调试i2c外围设备方便很多,有必要推荐一下。

二、在android源码里面编译i2c-tools。源码下载路径:https://download.csdn.net/download/qq_37858386/12273308

      1、下载i2c-tools source code,如下

Android:i2c调试工具 i2c-tools的使用以及在Android external目录下新增一个可执行应用及编译_第1张图片

     2、把代码放到external下,添加Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional
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 := optional
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 := optional
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 := optional
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 := optional
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)

     3、可以单独执行mmm mmm external/i2c-tools-3.0.0/进行编译,     会在out/xxx/system/bin/目录下生成 i2cdetect、i2cget 、i2cdump 、i2cset可执行文件。

Android:i2c调试工具 i2c-tools的使用以及在Android external目录下新增一个可执行应用及编译_第2张图片

 

      4、也可以在编译系统的时候把该模块添加进来,在device/xxx/device.mk里面添加:

           PRODUCT_PACKAGES += \
                                     i2cdetect \
                                     i2cget \
                                     i2cdump \
                                     i2cset

Android:i2c调试工具 i2c-tools的使用以及在Android external目录下新增一个可执行应用及编译_第3张图片

             这样在整个系统编译的时候(比如make -j16)能够生成那几个可执行文件。

         5、也可以用单独的arm编译器进行编译,Makefile文件如下,修改你的编译器路径。

# I2C tools for Linux
#
# Copyright (C) 2007  Jean Delvare 
#
# Licensed under the GNU General Public License.

DESTDIR	=
prefix	= /usr/local
bindir	= $(prefix)/bin
sbindir	= $(prefix)/sbin
mandir	= $(prefix)/share/man
man8dir	= $(mandir)/man8
incdir	= $(prefix)/include

INSTALL		:= install
INSTALL_DATA	:= $(INSTALL) -m 644
INSTALL_DIR	:= $(INSTALL) -m 755 -d
INSTALL_PROGRAM	:= $(INSTALL) -m 755
RM		:= rm -f
CROSS_COMPILE	?=~/xxxxxxxxxx/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
#CC	:= gcc
CC	:= $(CROSS_COMPILE)
CFLAGS	:= -Wall
LDFLAGS+=-static
CFLAGS	+= -O2
# When debugging, use the following instead
#CFLAGS	+= -O -g

KERNELVERSION	:= $(shell uname -r)

.PHONY: all strip clean install uninstall

all:

include eeprom/Module.mk
include include/Module.mk
include tools/Module.mk

Android:i2c调试工具 i2c-tools的使用以及在Android external目录下新增一个可执行应用及编译_第4张图片

 

三、如何使用i2c-tools?

    1、通过 adb push 之间将编译生成的4个文件复制到 Android 平台的 /system/bin 目录下,修改可以执行权限。

    2、用i2cdetect检测系统上有几组i2c总线:

          i2cdetect -l

    3、用i2cdetect检测有哪些设备挂载在i2c_n总线上:

          i2cdetect -r -y 0  
          i2cdetect -r -y 1
          ...

    4、用i2cdump查看器件所有寄存器的值,这个很有用,输入 i2cdump -f -y 1 0x2b (查看总线1地址是0x20设备寄存器值)

    5、用i2cset设置单个寄存器值,用i2cget读取单个寄存器值。

          i2cset -f -y 1 0x2b 0x32 0x3f (设置i2c-1上0x2b器件的0x32寄存器值为0x3f)

          i2cget -f -y 1 0x2b 0x32     (读取i2c-1上0x2b器件的0x32寄存器值)

Android:i2c调试工具 i2c-tools的使用以及在Android external目录下新增一个可执行应用及编译_第5张图片

 

你可能感兴趣的:(开发工具)