i2cTool交叉编译

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值