IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> i2ctools工具移植(基于某android平台) -> 正文阅读

[移动开发]i2ctools工具移植(基于某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 -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

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:28:54  更:2021-11-23 12:29:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:20:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码