i2cTool交叉编译

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值