原文网址:http://my.oschina.net/luoly/blog/368881

Android 平台下使用 i2c-tools


Andorid 开发板为 Freescale imx6 的 SabreSD Board

下载源码

将 i2c-tools 代码下载到 Android 源码的 external 目录下,我是使用 Subversion 直接从官方版本库中检出,当然使用别的方式下载到源代码也是可以的。

  1. ~/mydroid $ svn checkout http://lm-sensors.org/svn/i2c-tools/branches/i2c-tools-3.1 external/i2c-tools

在 i2c-tools 目录下新建 Android.mk 文件,内容如下:

  1. # external/i2c-tools/Android.mk
  2. LOCAL_PATH:= $(call my-dir)
  3. include $(CLEAR_VARS)
  4. LOCAL_MODULE_TAGS := eng
  5. LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
  6. LOCAL_SRC_FILES := tools/i2cbusses.c tools/util.c
  7. LOCAL_MODULE := i2c-tools
  8. include $(BUILD_STATIC_LIBRARY)
  9. include $(CLEAR_VARS)
  10. LOCAL_MODULE_TAGS := eng
  11. LOCAL_SRC_FILES:=tools/i2cdetect.c
  12. LOCAL_MODULE:=i2cdetect
  13. LOCAL_CPPFLAGS += -DANDROID
  14. LOCAL_SHARED_LIBRARIES:=libc
  15. LOCAL_STATIC_LIBRARIES := i2c-tools
  16. LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
  17. include $(BUILD_EXECUTABLE)
  18. include $(CLEAR_VARS)
  19. LOCAL_MODULE_TAGS := eng
  20. LOCAL_SRC_FILES:=tools/i2cget.c
  21. LOCAL_MODULE:=i2cget
  22. LOCAL_CPPFLAGS += -DANDROID
  23. LOCAL_SHARED_LIBRARIES:=libc
  24. LOCAL_STATIC_LIBRARIES := i2c-tools
  25. LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
  26. include $(BUILD_EXECUTABLE)
  27. include $(CLEAR_VARS)
  28. LOCAL_MODULE_TAGS := eng
  29. LOCAL_SRC_FILES:=tools/i2cset.c
  30. LOCAL_MODULE:=i2cset
  31. LOCAL_CPPFLAGS += -DANDROID
  32. LOCAL_SHARED_LIBRARIES:=libc
  33. LOCAL_STATIC_LIBRARIES := i2c-tools
  34. LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
  35. include $(BUILD_EXECUTABLE)
  36. include $(CLEAR_VARS)
  37. LOCAL_MODULE_TAGS := eng
  38. LOCAL_SRC_FILES:=tools/i2cdump.c
  39. LOCAL_MODULE:=i2cdump
  40. LOCAL_CPPFLAGS += -DANDROID
  41. LOCAL_SHARED_LIBRARIES:=libc
  42. LOCAL_STATIC_LIBRARIES := i2c-tools
  43. LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
  44. include $(BUILD_EXECUTABLE)

编译

  1. ~/mydroid/external/i2c-tools $ mm

编译后在 out/target/product/sabresd_6dq/system/bin目录下生成4个可执行程序:

  • i2cdetect
  • i2cdump
  • i2cget
  • i2cset

安装

制作新的 system image,然后重新烧录 system.img

  1. ~/mydroid $ make snod
  2. ~/mydroid $ fastboot system out/target/product/sabresd_6dq/system.img

当然也可以通过 adb push 之间将编译生成的4个文件复制到 Android 平台的 /system/bin 目录下。 
在 abd pusll 之前,要先将 system 分区 remount 成可写入模式。

i2c-tools 的用法

i2cdetect

列举 I2C bus

  1. # i2cdetect -l
  2. i2c-0 i2c imx-i2c I2C adapter
  3. i2c-1 i2c imx-i2c I2C adapter
  4. i2c-2 i2c imx-i2c I2C adapter

列举 I2C bus i2c-1 上面连接的所有设备

  1. # i2cdetect -y 1
  2. 0 1 2 3 4 5 6 7 8 9 a b c d e f
  3. 00: -- -- -- -- -- UU -- -- -- -- -- -- --
  4. 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
  5. 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  6. 30: -- -- -- -- -- -- -- -- -- -- 3a -- -- -- -- --
  7. 40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
  8. 50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  9. 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  10. 70: -- -- -- -- -- -- -- --

发现 I2C 设备的位置显示为UU或者表示设备地址的数值,UU表示该设备在 driver 中被使用。

i2cdump

dump I2C 设备大批量 register 的值

  1. # i2cdump -y -f 1 0x3a
  2. No size specified (using byte-data access)
  3. 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
  4. 00: eb 00 7f 05 3d 00 00 00 08 06 00 00 00 00 00 00 ?.??=...??......
  5. 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  6. 20: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 ?#Eg????????vT2?
  7. 30: f0 e1 d2 c3 00 00 00 00 00 00 00 00 00 00 00 00 ????............
  8. 40: 80 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 ?.?.............
  9. 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  10. 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  11. 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  12. 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  13. 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  14. a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  15. b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  16. c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  17. d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  18. e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  19. f0: 00 00 00 00 00 00 00 00 00 00 00 30 00 00 00 00 ...........0....

i2cget

读取 I2C 设备某个 register 的值

  1. # i2cget -y -f 1 0x3a 0x02
  2. 0x7f

i2cset

设置 I2C 设备某个 register 的值

  1. # i2cset -y -f 1 0x3a 0x02 0x05

【转】Android 平台下使用 i2c-tools的更多相关文章

  1. Android平台下渗透测试工具大集合

    Android平台下渗透测试工具大集合 分享一个google的项目,各种Android下的渗透测试工具. Ad Network Detector (1.2): http://market.androi ...

  2. (转)android平台下使用点九PNG技术

    “点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向, ...

  3. 【转】Android平台下利用zxing实现二维码开发

    http://www.cnblogs.com/dolphin0520/p/3355728.html 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描 ...

  4. Android平台下利用zxing实现二维码开发

    Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平 ...

  5. 在Android平台下搭建PhoneGap开发环境--用HTML5开发游戏

    一.在Android平台下搭建PhoneGap开发环境具体怎么搭建我这里就不详细说了,如有需要我后面再讲 . PhoneGap 官方地址有详细说明:http://www.phonegap.com. 在 ...

  6. (转载)Android平台下利用zxing实现二维码开发

    Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平 ...

  7. 在android下使用i2c tools

    在android使用i2c tools访问i2c,很方便,可以在https://launchpad.net/ubuntu/+source/i2c-tools 下载最新的i2c tools. 把i2c- ...

  8. linux /Android 平台下使用 i2c-tools

    下载源码将 i2c-tools 代码下载到 Android 源码的 external 目录下 在 i2c-tools 目录下新建 Android.mk 文件,内容如下: # external/i2c- ...

  9. Android平台下使用lua调用Java代码经验总结

    动态语言以其执行的灵活性,可配置性.方便调试能够为开发带来极大的方便.假设用好了.能够极大的提高开发的效率. 怪不得像游戏开发这样复杂的软件开发里没有不集成脚本语言的. 当中,lua以其小巧,灵活.方 ...

随机推荐

  1. Unix 主机认证配置

    A机用户: ssh-keygen -t rsa ssh-keygen -t dsa cd .ssh cat *.pub >>authorized_keys  ---注意一定要追加,不然会覆 ...

  2. 自定义ScrollViewer的Touch事件--触摸上下移动ScrollViewer滚动到指定位置

    double mPointY;//触摸点的Y坐标 double mOffsetY;//滚动条当前位置 bool mIsTouch = false;//是否触摸 //触摸事件 private void ...

  3. 【POJ1003】Hangover(二分搜索)

    直接用库函数二分即可. #include <iostream> #include <cstring> #include <cstdlib> #include < ...

  4. csdn博客被一个无名网站套用,不知大家是否也是这样?

    今天闲来无事,用google搜索了一下自己csdn的博客名,查看了一下搜索结果,发现自己在csdn上的博客被其他一下网站转载了,转载后注明作者的网站这里我也就不去说了,问题是我发现了一个名叫“开心问答 ...

  5. poj 1088 滑雪问题

    滑雪问题 import java.util.Scanner; public class Main{ static int a[][],r,c; public static void main(Stri ...

  6. 达到XML简单的动态配置

    今天写的XML相关内容:随着上述眼前的小项目(等级类别)由于地图每个级别.因此,让他动态读取XML内容,这样的变化只能看到XML档. 简单的想法:第一次使用UserDefault类写入文件 UserD ...

  7. poi读写Excel文件

    jxl 只有excel基本的操作,代码操作比较方便,一般使用jxl就够了,对图片支持较好 poi功能比jxl强大但是比较吃内存,支持计算公式        关于jxl具体可以参考    http:// ...

  8. ORACLE序列的使用总结

    1.创建序列ORACLE序列的语法格式为: CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/ MINVALUE n|NOMAXV ...

  9. Linux远程登录

    Linux远程登录 远程登录 关闭linux的防火墙 /etc/init.d/iptables stop 启动VNC服务器 Vncserver & 然后记住desktop is localho ...

  10. asp.net在后台弹出confirm确认对话框并获取用户选择的值做出相应的操作

    在asp项目中,这种情况是经常出现的,前段时间通过查找资料以及自己尝试,找到一种解决方案,但是不知是否有更好的方案,以后发现再进行记录. 一.思路 在本次项目中,在一个函数中需要让用户判断,并根据用户 ...