i2ctools工具移植到android(使用NDK方式 在某android平台测试)

前提条件

  • 主板i2c已在设备树配置status和引脚复用正常,即设备的i2c总线达到正常使用条件
  • I2C device interface假设内核已配置进去

编译工具链NDK环境搭建

~/workspace/ndk$ ls
android-ndk-r22b  android-ndk-r22b-linux-x86_64.zip  
~/workspace/ndk$ unzip android-ndk-r22b-linux-x86_64.zip

记住当前的下载和解压路径,后面会用到。

使用NDK编译i2ctools

  • 先clone i2ctools 源码
 git clone git://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git

i2ctools wiki

https://i2c.wiki.kernel.org/index.php/I2C_Tools
  • 切换到源码下声明NDK相关编译环境变量
#ndk env
export NDK=~/workspace/ndk/android-ndk-r22b
export PATH=${NDK}:${PATH}
export NDKROOT=${NDK}
export NDK_PROJECT_PATH=${NDK}
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
export TARGET=armv7a-linux-androideabi
export API=30
export AR=$TOOLCHAIN/bin/llvm-ar
export CC=$TOOLCHAIN/bin/$TARGET$API-clang
export AS=$CC
export CXX=$TOOLCHAIN/bin/$TARGET$API-clang++
export LD=$TOOLCHAIN/bin/ld
export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
export STRIP=$TOOLCHAIN/bin/llvm-strip
export NDK_APPLICATION_MK=./conf/build_arch_conf.mk
  • 编译i2ctools
    直接make就可以,注意这里的make要和上述声明环境变量操作后的是同一终端下操作。
make -j64

在这里插入图片描述
生成的工具在tools目录下。

导入系统测试

  • 前提:将设备remount,将system分区mount成rw
  • 将动态库和可执行程序推到板卡端
adb push ~/workspace/lib/i2ctools/i2c-tools/lib/libi2c.so.0 /system/lib/
adb push ~/workspace/lib/i2ctools/i2c-tools/tools/i2cdetect /data

执行效果
在这里插入图片描述

  • 过程中遇到的问题
    在旧版本的i2cdetect工具里,轮询发送i2c设备地址时,当设备有应答时,还会对该设备的0x20寄存器进行写操作!但是刚好这个设备是只有0~0x07的寄存器,所以就读不到了
    在这里插入图片描述
    在使用最新拉下来的i2ctools不会这样子。
    在这里插入图片描述
    可能是这个是板卡内置i2ctools的太旧了,后面查看系统原生的发现系统自带的是基于toybox链接出来的。。。emmm

  • 需要内置到系统的话,可通过mk或者bp将库和可执行程序内置到系统镜像中。

  • 需要查看更多命令可参考:https://blog.csdn.net/mantis_1984/article/details/18254767?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163757351316780357238797%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163757351316780357238797&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~hot_rank-3-18254767.pc_v2_rank_blog_default&utm_term=I2C-Tools&spm=1018.2226.3001.4450

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值