Linux I2C驱动框架, 调试神奇I2C-Tools介绍

news2024/12/23 22:42:55
  •  1.  IIC协议

    2.

    Linux的I2C体系结构分为3个组成部分:

    I2C核心(  i2c-core.c ):       

      I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法、I2C通信方法(”algorithm”)、与具体适配器无关的代码、探测设备、检测设备地址的上层代码等。

           给驱动编程人员提供编程接口。

    I2C总线驱动( i2c-s3c2410.c ):

      I2C总线驱动是对适配器端的实现( 即初始化i2c控制器 )。

      实现操作方法,它知道怎么发数据,但是不知道该发什么数据。

    I2C设备驱动(  i2c-dev.c ):

      实现策略问题,它知道发什么数据,但是不知道怎么发数据。

      I2C设备驱动(也称为客户驱动)是对设备端的实现。

            

    君正提供的内核源码的IIC结构

    登录系统后,可以查看到驱动内配置的外设信息

    3. I2C-Tools 交叉编译

    3.1 源码下载

    Index of /pub/software/utils/i2c-tools/

    3.2 解压源码

    tar xvf i2c-tools-4.1.tar.gz

    cd i2c-tools-4.1

    3.3 指定交叉编译器

    export CC=mips-linux-gnu-gcc

    export STRIP=mips-linux-gnu-strip

    export AR=mips-linux-gnu-ar

    3.4 编译

    make 

    3.5 移所需库

    把 libi2c.so.0.1.1 拷贝到 开发板的 /usr/lib/ 目录下

    把 libi2c.so.0.1.1 软链接为 libi2c.so.0 (ln -s libi2c.so.0.1.1 libi2c.so.0)

    4. 如何使用I2C-Tools

    扫描所有I2C设备地址

    ./i2cdetect -l      #查看系统使能的i2c总线

    检测总线上的设备

    ./i2cdetect -r -y 0    #-y表示省去交互式

    i2c上读写数据:
    ./i2cset -y 1 0x40 0x00 0x13
    ./i2cget -y 1 0x40 0x00 

    i2cdump可以dump出该设备的所有寄存器信息
    ./i2cdump -y 0 0x69  #I2C0上挂着的地址为0x69的I2C从设备

    .

    /************* 社会的有色眼光是:博士生、研究生、本科生、车间工人; 重点大学高材生、普通院校、二流院校、野鸡大学; 年薪百万、五十万、五万; 这些都只是帽子,可以失败千百次,但我和社会都觉得,人只要成功一次,就能换一顶帽子,只是社会看不见你之前的失败的帽子。 当然,换帽子决不是最终目的,走好自己的路就行。 杭州.大话西游 *******/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/58817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在线PDF查看器和PDF编辑器:GrapeCity Documents PDF (GcPdf)

跨平台 JavaScript PDF 查看器 使用我们的 JavaScript PDF 查看器在网络上阅读和编辑 PDF。跨浏览器和框架打开和打印。GrapeCity Documents PDF (GcPdf) 全功能的 JavaScript PDF 查看器和 PDF 编辑器 适用于所有现代浏览器和框架,包括 Edge、Chrome、Firefox、Op…

UML类图中 前缀符号 + - # ~ 的含义

UML类图中有各种符号,新手看着一脸懵逼,今天我就来讲一下各个符号到底是啥意思。 其实这些符号都是在描述类属性的可见性: UML中,可见性分为4级 1、public public 公用的用 前缀表示 ,该属性对所有类可见 2、prote…

算法篇-----回溯1

文章目录什么是回溯呢?力扣690-----员工的重要性(中等)力扣733-----图像渲染(简单)力扣463-----岛屿的周长(简单)力扣130------被围绕的区域(中等)力扣17--------电话号码的组合 &am…

kafka-consumer-offset位移

目录 1 offset的默认维护位置 1.1 消费offset案例 2 自动提交offset 3 手动提交offset 3.1 原理 3.2 代码示例 3.2.1 同步提交 3.2.2 异步提交(生产常用) 4 指定offset消费 5 指定时间消费 6 漏消费和重复消费分析 6.1 重复消费 6.2 漏消费 6.3 消费者事务 7 数据…

高通开发系列 - ALSA声卡驱动中tinymix返回时间过慢

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 问题背景问题分析验证第一个猜测验证第二个猜测问题原因解决方案问题背景 我们一个高通平台上出现一个问题: tingmix命令需要几秒钟…

一文带你深入理解Linux端口重用这一特性

【好文推荐】 需要多久才能看完linux内核源码? 概述Linux内核驱动之GPIO子系统API接口 一篇长文叙述Linux内核虚拟地址空间的基本概括 轻松学会Linux下查看内存频率,内核函数,cpu频率 大家好,我是Linux吴彦祖! 开篇我先考大家一个小问题&…

Golang Map 基本原理

Go 语言中的 map 即哈希表。哈希表把元素分到多个桶里,每个桶里最多放8个元素。在访问元素时,首先用哈希算法根据 key 和哈希表种子获得哈希值(暂将其命名为 h),然后利用 h 的低 bbb 位得到桶的序号。其中桶的个数为 2b2^b2b 个,是…

乐趣国学—品读“富润屋,德润身。”中的智慧

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 ✨当前专栏:国学周更-心性养成之路 …

java 基于 SpringMVC+Mybaties+ easyUI 快递公司管理系统 的 设计与实现

一.项目介绍 本系统 角色 权限 动态配置 默认配置了三种 第一种: 超级管理员 第二种: 运输公司 第三种: 订单跟踪人员 超级管理员拥有所有权限,包括车子、路线、订单、是否送达以及交易的统计报表 运输公司:车辆管理权…

使用 Python 和 Streamlit 创建一个很棒的 Web 应用程序

“我们如何制作一个机器学习脚本并将其转换为一个尽可能简单的应用程序,让它基本上感觉像是一个脚本练习?” — Adrien Treuille(Streamlit 的发明者) Web 应用程序是显示数据科学或机器学习项目结果的好方法。从头开始开发 Web 应用程序需要大量时间、精力和技术技能。另一…

世界杯海信再出圈,三星:“谈不上愉悦”

作者 | 曾响铃 文 | 响铃说 本届世界杯作为第一次在北半球冬季举行的世界杯,给全世界球迷带去了一次全新体验。且随着赛程的推进,更多的“惊喜”也一一浮现。 其一便是超多的爆冷,虽然没有具体统计,但此次应该是近几届爆冷最多…

[激光原理与应用-32]:典型激光器 -4- 半导体泵浦固体激光器

目录 第1章 概述 1.1 什么是半导体泵浦固体激光器 1.2 优势 1.3 典型的波长 第2章 半导体泵浦固体激光器的种类 2.1 端面泵浦固体激光器 2.2 侧面泵浦固体激光器 第1章 概述 1.1 什么是半导体泵浦固体激光器 半导体泵浦固体激光器(Diode Pump Solid State …

Python函数

一、函数介绍 函数:是组织好的,可重复使用的,用来实现特定功能的代码段。 使用函数的好处是: 将功能封装在函数内,可供随时随地重复利用提高代码的复用性,减少重复代码,提高开发效率二、函数…

学习python第一天

关于Python的数据类型 Python数据类型包括: 数字类型,字符类型,布尔类型,空类型,列表类型,元组类型,字典类型 1、数字类型 包括:整型int 浮点型float(有小数位的都是是浮点型) 注…

代码随想录刷题|LeetCode 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 动态规划

目录 1143.最长公共子序列 思路 1、确定dp数组 2、确定递推公式 3、dp数组初始化 4、遍历顺序 5、推导dp数组 最长公共子序列 1035.不相交的线 思路 不相交的线 53. 最大子序和 思路 最大子序列 动态规划 贪心算法 1143.最长公共子序列 题目链接:力扣 思路 不知道…

你在终端启动的进程,最后都是什么下场?(下)

你在终端启动的进程,最后都是什么下场?(下) 在上期文章你在终端启动的进程,最后都是什么下场?(上)当中我们介绍了前台进程最终结束的几种情况,在本篇文章当中主要给大家…

好书分享丨区块链的骨骼——密码技术

开放隐私计算 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。 180篇原创内容 …

darknet框架GPU编译安装

Darknet: Open Source Neural Networks in C 1、darknet下载 git clone https://github.com/pjreddie/darknet.git cd darknet设置makefile gpu1 cudnn1 opencv1【1】GPU1;需要设置显卡驱动、cuda 使用nvidia-smi 查看显卡型号和支持的cuda版本号 nvidia官网下载cuda,以及…

计算机网络学习笔记(Ⅱ):物理层

目录 1 物理层概念 1.1 物理层基本概念 1.定义 2.主要任务 3.特性 1.2 数据通信基础 1.典型模型 2.相关术语 3.三种通信方式 4.数据传输方式 1.3 物理层内容 1.码元 2.速率 3.带宽 1.4 奈氏准则与香农定理 1.失真 2.码间串扰 3.奈氏准则 4.香农定理 1.5 …

蓝桥杯C/C++VIP试题每日一练之Huffman树

💛作者主页:静Yu 🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者 💛社区地址:前端知识交流社区 🧡博主的个人博客:静Yu的个人博客 🧡博主的个人笔记本:前端面试题 个人笔记本只记录前端领域的面试题目,项目总结,面试技…