i2c tool 的使用



i2c tool 的使用  


1,下载源码:

  http://packages.debian.org/search?keywords=i2c-tools

2,解压源码包:

     tar -xvf i2c-tools-3.1.0.tar.bz2
2、解压后,可手工编译:

    arm-none-linux-gnueabi-gcc  -O2   -I../include -c i2cdetect.c  -static -o i2cdetect.o

    arm-none-linux-gnueabi-gcc  -O2   -I../include  -c  i2cbusses.c -static -o i2cbusses.o

    arm-none-linux-gnueabi-gcc  -O2   -I../include  i2cdetect.o i2cbusses.o -static -o i2cdetect

其它工具编译同上,一定要加-static参数,要不然在真板上是跑不起来的


也可以修改Makefile文件,选择arm的编译器,如下
CC    := arm_1103_le-gcc
3、在tools的Module.mk文件中编译选项中添加-static静态编译选项,如下
$(TOOLS_DIR)/i2cdetect: $(TOOLS_DIR)/i2cdetect.o $(TOOLS_DIR)/i2cbusses.o
    $(CC) $(LDFLAGS) -static -o $@ $^

$(TOOLS_DIR)/i2cdump: $(TOOLS_DIR)/i2cdump.o $(TOOLS_DIR)/i2cbusses.o $(TOOLS_DIR)/util.o
    $(CC) $(LDFLAGS) -static -o $@ $^

$(TOOLS_DIR)/i2cset: $(TOOLS_DIR)/i2cset.o $(TOOLS_DIR)/i2cbusses.o $(TOOLS_DIR)/util.o
    $(CC) $(LDFLAGS) -static -o $@ $^

$(TOOLS_DIR)/i2cget: $(TOOLS_DIR)/i2cget.o $(TOOLS_DIR)/i2cbusses.o $(TOOLS_DIR)/util.o
    $(CC) $(LDFLAGS) -static -o $@ $^

#
# Objects
#

$(TOOLS_DIR)/i2cdetect.o: $(TOOLS_DIR)/i2cdetect.c $(TOOLS_DIR)/i2cbusses.h $(INCLUDE_DIR)/linux/i2c-dev.h
    $(CC) $(CFLAGS) $(TOOLS_CFLAGS) -c $< -static -o $@

$(TOOLS_DIR)/i2cdump.o: $(TOOLS_DIR)/i2cdump.c $(TOOLS_DIR)/i2cbusses.h $(TOOLS_DIR)/util.h $(INCLUDE_DIR)/linux/i2c-dev.h
    $(CC) $(CFLAGS) $(TOOLS_CFLAGS) -c $< -static -o $@

$(TOOLS_DIR)/i2cset.o: $(TOOLS_DIR)/i2cset.c $(TOOLS_DIR)/i2cbusses.h $(TOOLS_DIR)/util.h $(INCLUDE_DIR)/linux/i2c-dev.h
    $(CC) $(CFLAGS) $(TOOLS_CFLAGS) -c $< -static -o $@

$(TOOLS_DIR)/i2cget.o: $(TOOLS_DIR)/i2cget.c $(TOOLS_DIR)/i2cbusses.h $(TOOLS_DIR)/util.h $(INCLUDE_DIR)/linux/i2c-dev.h
    $(CC) $(CFLAGS) $(TOOLS_CFLAGS) -c $< -static -o $@

$(TOOLS_DIR)/i2cbusses.o: $(TOOLS_DIR)/i2cbusses.c $(TOOLS_DIR)/i2cbusses.h $(INCLUDE_DIR)/linux/i2c-dev.h
    $(CC) $(CFLAGS) $(TOOLS_CFLAGS) -c $< -static -o $@

$(TOOLS_DIR)/util.o: $(TOOLS_DIR)/util.c $(TOOLS_DIR)/util.h
    $(CC) $(CFLAGS) $(TOOLS_CFLAGS) -c $< -static -o $@

#
# Commands
#
4、将在tools目录下生成i2cdetect,i2cdump,i2cset,i2cget等命令工具拷贝到android系统的目录/data/local/下
5、执行./i2cget -f -y 0 0x40 0x08
此句的意思是将i2c0上的从地址为0x40设备的地址为0x08的寄存器的值读出来。
执行./i2cset -f -y 0 0x40 0x09 0x80
此句意思为将i2c0上的从地址为0x40设备的地址为0x09的寄存器的值设为0x80.
注意:在linux下使用i2c-tools的方法与之差不多,编译时不需要静态编译,即不加-static即可,运行时直接如下
i2cset -f -y 0 0x40 0x09 0x80


串口端执行,如图:

i2c tool 的使用_第1张图片

你可能感兴趣的:(Android开发,Linux,shell)