• 1. 获取源码
  • 2. 解压源码
  • 3. 指定交叉编译器
  • 4. 编译
  • 5. 移植
  • 6 附录
  • 7 命令举例
    • 7.1 i2cdetect
    • 7.2 i2cdump
    • 7.3 i2cset 与 i2cget
    • 7.4 i2ctransfer
      • 7.4.1 读
      • 7.4.2 写

1. 获取源码

I2C tool 是一个开源工具,需自行下载进行交叉编译,代码下载地址:
https://www.kernel.org/pub/software/utils/i2c-tools/
或者

wget https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/i2c-tools-4.1.tar.xz

2. 解压源码

tar xvf i2c-tools-4.1.tar.gzcd i2c-tools-4.1

3. 指定交叉编译器

export CC=aarch64-linux-gnu-gccexport STRIP=aarch64-linux-gnu-stripexport AR=aarch64-linux-gnu-ar

4. 编译

make

5. 移植

1)将tools目录下的i2cdetecti2cdump等生成的工具拷贝到开发板文件系统/usr/sbin路径下,然后在路径下执行

sudo chmod 755 i2cdetect

2)将lib目录下的libi2c.so.0.1.1拷贝到开发板文件系统/usr/lib路径下,然后在路径下执行

sudo ln -s libi2c.so.0.1.1 libi2c.so.0
sudo ln -s libi2c.so.0 libi2c.so

效果验证

6 附录

自动编译脚本build-i2ctools.sh,直接放到 i2c-tools-4.1

#!/bin/bashGCC_DIR=<自定义的路径>/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnuexport CC=$GCC_DIR-gcc
export STRIP=$GCC_DIR-strip
export AR=$GCC_DIR-armake

7 命令举例

7.1 i2cdetect

1) 检测系统上有几组i2c总线

sudo i2cdetect -l


2) 检测挂载在i2c总线上器件

sudo i2cdetect -r -y 1    #(检测i2c-1上的挂载情况)

7.2 i2cdump

i2cdump查看器件所有寄存器的值,这个很有用,输入

 sudo i2cdump -f -y 2 0x1C #(查看alc5640寄存器值)

7.3 i2cset 与 i2cget

i2cset 设置单个寄存器值,用i2cget读取单个寄存器值,可以在初期调试时发挥很大作用,一旦有预期的现象出现,就可以用i2cdump读出整个寄存器的值,然后固化到代码中。

sudo i2cget -f -y 2 0x1c 0x04     #(读取i2c-2上0x1c器件的0x77寄存器值)sudo i2cset -f -y 2 0x1c 0x04 0xc8 #(设置i2c-2上0x1c器件的0x77寄存器值为0x3f)

7.4 i2ctransfer

i2ctransfer支持16位/32位寄存器的读写,i2cset和i2cget只能读取8位的寄存器。所以i2ctransfer可以替代i2cset和i2cget。

7.4.1 读

sudo i2ctransfer -f -y <i2cno> w<num>@<i2caddr> <data0> <data1> <datan> <rnum>

0x1C为I2C设备的地址, 0x0002为要读的寄存器地址, r2为连续读2Byte, 0xc8 0xc8 为读到的寄存器的值。

注意:
由于系统字节序存储方式分为大端小端,所以在使用i2ctransfer读多字节I2C设备寄存器地址值时,注意寄存器地址顺序。

7.4.2 写

sudo i2ctransfer -f -y <i2cno> w<num>@<i2caddr> <data0> <data1> <data2>

0x1C为I2C设备的地址, 0x0002为要写的寄存器地址, 0x48为写入的值。

linux交叉编译 i2c-tools相关推荐

  1. linux i2c调试命令,嵌入式Linux下I2C接口调试

    By Toradex秦海 1).简介 I2C是嵌入式设备最为常用的接口之一,常用于如下面这些应用场景,因此本文就基于嵌入式Linux演示在User Space进行I2C设备调试. - Digital ...

  2. linux top交叉编译_Linux 系统下ARM Linux交叉编译环境crosstool工具

    Linux系统下ARM Linux交叉编译环境的建立目前流行的有三种途径. 一.使用别人编译好的开发工具链本文引用地址:http://www.eepw.com.cn/article/201611/31 ...

  3. linux top交叉编译_ARM Linux交叉编译工具链的制作

    本次是在VMWare虚拟机里安装了CentOS5.2操作系统,并在上面编译自己的ARM交叉编译工具链,下面是相应的步骤: 首先下载crosstool0.43源码包(crosstool-0.43.tar ...

  4. i2c tools ds90ub927芯片使用

    i2c tools && ds90ub927芯片使用: **下载:**git clone git://git.kernel.org/pub/scm/utils/i2c-tools/i2 ...

  5. Linux 交叉编译简介

    Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...

  6. 实例解析linux内核I2C体系结构

    实例解析linux内核I2C体系结构 一.概述 谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完 ...

  7. 【驱动】linux下I2C驱动架构全面分析

    I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. ...

  8. 解决Linux安装 VMware tools 工具的方法

    解决Linux安装 VMware tools 工具的方法 参考文章: (1)解决Linux安装 VMware tools 工具的方法 (2)https://www.cnblogs.com/ios9/p ...

  9. ubuntu 安装linux 下vmVMware tools 步骤及问题解决

    ubuntu 安装linux 下vmVMware tools 步骤及问题解决 参考文章: (1)ubuntu 安装linux 下vmVMware tools 步骤及问题解决 (2)https://ww ...

  10. Kali Linux安装VMware Tools

    Kali Linux安装VMware Tools VMware Tools可以用来实现物理机与虚拟机之间拖放文件,并且使的虚拟机更加流畅.大学霸IT达人在虚拟机VMware中安装的Kali Linux ...

最新文章

  1. OpenAI最新论文:机器学习效率正在超越摩尔定律
  2. C++易被忽略的知识点:移动语义 左值右值
  3. 手机MMI体系结构及其实现
  4. 我的世界暮色森林java下载_我的世界暮色森林mod1.7.2下载-暮色森林整合包下载...
  5. One-hot encoding 独热编码
  6. C#计算程序的运行时间
  7. 客户流失预警模型怎么做?
  8. 三维点云学习(4)5-DBSCNA python 复现-3-kd-tree radius NN 三方库 scipy 与 sklearn速度比较
  9. JavaScript杂谈(顺便也当知识积累)
  10. Python 之图片对比
  11. Oracle Grid 下载地址
  12. [js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法
  13. PotPlayer LAV MadVR SVP4/BFRC播放器设置(极为详细,硬解,渲染,插帧按CPU性能评级)
  14. powershell快捷键_Windows10 PowerShell快捷键大全
  15. 【多线程】送你1万朵玫瑰花
  16. HOW UNREAL RENDERS A FRAME
  17. unreal 渲染讲的比较好的材料
  18. 安信可LoRaWAN网关 RG-02 接入TTN平台,控制多节点LoRaWAN模组。
  19. 如何将计算思维融合到C语言程序设计中,利用案例融合计算思维与C语言教学
  20. web服务器双机热备方案解析

热门文章

  1. UE4官方文档UI学习:1.UMG UI设计器快速入门
  2. python简单计算器异常处理_Python计算器(正确除零)
  3. Python 支付宝转账到银行卡二维码制作步骤分享
  4. [裴礼文数学分析中的典型问题与方法习题参考解答]4.5.5
  5. Python-密码字典生成
  6. 视频教程-ThreeJS视频教程-JavaScript
  7. 宣讲会通知|香港科技大学工学院理学硕士线上直播综合场【MSc】
  8. linux ps 程序包,linux ps 详解
  9. 安装USB--RS232驱动,提示设备无法启动,解决方法
  10. android开源播放器代码,github上十二款最著名的Android播放器开源项目