i2cTool交叉编译

本文介绍了Linux系统中的I2C-tools软件包,该包包含一系列用于I2C总线操作的工具,如i2cdetect、i2cdump和i2cset等。通过这些工具,用户可以探测总线、读写芯片寄存器,并进行设备管理和编程。文章详细解释了如何下载、编译和安装I2C-tools,并提供了几个实用命令的示例,帮助开发者更好地理解和使用I2C接口。

https://i2c.wiki.kernel.org/index.php/I2C_Tools
I2C -tools包包含一组用于Linux的I2C工具:总线探测工具、芯片转储器、寄存器级SMBus访问助手、EEPROM解码脚本、EEPROM编程工具和用于SMBus访问的python模块。只要内核中包含I2C支持,就支持所有版本的Linux。
这些工具曾经是航天器传感器软件包的一部分,但后来被拆分为一个单独的软件包。

  1. 下载源码, 解压
    https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/
  2. 修改Makefile的:
    PREFIX为安装目录, ACRS 为交叉编译工具链, 理论上设定这两个值就可以了.
    至于sysroot这些它能自己找.
DESTDIR	?=
PREFIX	?= $(PWD)/out
ACRS = $(PWD)/../../tools/toolchain/riscv-gnu-toolchain/bin/riscv64-unknown-linux-gnu-
bindir	= $(PREFIX)/bin
sbindir	= $(PREFIX)/sbin
mandir	= $(PREFIX)/share/man
man3dir	= $(mandir)/man3
man8dir	= $(mandir)/man8
incdir	= $(PREFIX)/include
libdir	= $(PREFIX)/lib

INSTALL		:= install
INSTALL_DATA	:= $(INSTALL) -m 644
INSTALL_DIR	:= $(INSTALL) -m 755 -d
INSTALL_PROGRAM	:= $(INSTALL) -m 755
LN		:= ln -sf
RM		:= rm -f

CC	= $(ACRS)gcc
AR	= $(ACRS)ar
STRIP	= $(ACRS)strip

在这里插入图片描述

使用简介

i2cdetect -l

检测并列出所有系统i2c总线

i2cdetect -y 0

检测并列出第0号总线上的所有设备

以下命令只支持8位寄存器地址

i2cdump -f -y 0 0x37 dump

0号bus上地址为0x20的所有寄存器值

i2cset -fy 0 0x37 0x12 0x04 b

向0号总线上的0x37的0x12地址写入0x04

i2cget -fy 0 0x37 0x12

读取0号总线上的0x37的0x12地址

以下命令支持16位寄存器地址

i2ctransfer -f -y 0 w3@0x37 0x50 0x81 0x01

向0号总线上的0x37的0x50地址写入3个字节, 0x50 0x81 0x01,
即, 向0号总线上的0x37的0x5081写入0x01

i2ctransfer -f -y 1 w2@0x37 0x50 0x81 r1

向0号总线上的0x37的0x50地址写入2个字节, 0x50 0x81,然后读取1个字节
即, 读取0号总线上0x37设备0x5081的值.

### 安装 i2c-tools 工具 i2c-tools 是一组用于调试 I2C 总线的开源工具,支持 Linux 系统。安装方式主要包括包安装和源码编译安装两种方法。 #### 包安装 在基于 Debian 的 Linux 系统中,可以直接使用 `apt-get` 安装 i2c-tools: ```bash sudo apt-get install i2c-tools ``` 这种方式简单快捷,适用于大多数用户[^1]。 #### 源码编译安装 如果需要自定义安装路径或进行交叉编译,可以从官网下载源码并进行编译安装。i2c-tools 的源码可以从以下地址获取: [https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/](https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/) 下载并解压后,进入源码目录,修改 `Makefile` 文件中的配置参数: - `PREFIX`:设置为期望的安装目录。 - `ACRS`:设置为交叉编译工具链的前缀(如使用交叉编译)。 示例 `Makefile` 配置如下: ```makefile DESTDIR ?= PREFIX ?= $(PWD)/out ACRS = $(PWD)/../../tools/toolchain/riscv-gnu-toolchain/bin/riscv64-unknown-linux-gnu- bindir = $(PREFIX)/bin sbindir = $(PREFIX)/sbin mandir = $(PREFIX)/share/man man3dir = $(mandir)/man3 man8dir = $(mandir)/man8 incdir = $(PREFIX)/include libdir = $(PREFIX)/lib INSTALL := install INSTALL_DATA := $(INSTALL) -m 644 INSTALL_DIR := $(INSTALL) -m 755 -d INSTALL_PROGRAM := $(INSTALL) -m 755 LN := ln -sf RM := rm -f CC = $(ACRS)gcc AR = $(ACRS)ar STRIP = $(ACRS)strip ``` 配置完成后,执行以下命令进行编译和安装: ```bash make make install ``` 编译完成后,i2c-tools 将被安装到 `PREFIX` 所指定的目录中[^3]。 ### i2c-tools 的功能 i2c-tools 提供了多种功能,包括: - 探测系统中可用的 I2C 总线。 - 查看、读取和写入 I2C 设备的寄存器值。 - EEPROM 编程和解码。 - 提供 SMBus 访问助手和 Python 模块[^2]。 这些功能使其成为调试 I2C 设备的重要工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值