热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

平台设备/驱动程序与i2c设备/驱动程序

如何解决《平台设备/驱动程序与i2c设备/驱动程序》经验,为你挑选了1个好方法。

由于我是嵌入式领域的新手,因此在理解i2c设备/驱动程序与平台设备/驱动程序之间的明显差异时遇到了困难。

我已阅读此链接:

平台驱动程序和普通设备驱动程序有什么区别?

表示平台设备/驱动程序用于不可发现的设备,例如在i2c总线上连接的设备,并且平台设备通过匹配名称绑定到驱动程序。

我浏览了一个电路板文件,其中使用i2c API(i2c_register_board_info,omap_i2c_add_bus等)注册了在i2c总线上连接的音频编解码器(不可发现的设备),因此我的问题是

    i2c设备/驱动程序和平台设备/驱动程序有什么区别?

    何时使用i2c相关API以及何时使用平台相关API(platform_driver_register,platform_device_register)在内核中注册设备/驱动程序。或者如果我们可以使用i2c相关的API进行不可发现的设备(在i2c上连接)的注册,则需要平台设备注册。

Drad.. 5

每个SOC(片上硅)或微控制器都将具有一个I2C控制器,该控制器提供了一种与I2C设备(例如摄像机传感器,PMIC,温度传感器等)进行连接和通信的方法。用于配置和使用此I2C控制器的驱动程序称为平台驱动程序。该I2C控制器称为平台设备。大多数情况下,平台设备将成为SOC的一部分。I2C控制器的寄存器是使用平台驱动程序编程的。这些寄存器可以说是ARM存储器映射的,并且可以在SOC的TRM上使用。

现在,所有可以通过I2C控制器(如摄像机传感器,PMIC,温度传感器等)连接到SOC或微控制器的I2C设备都需要一个驱动器来控制它们。该驱动程序称为设备驱动程序。这些设备的寄存器不是SOC内存映射的一部分。需要I2C设备(如OV5640摄像机传感器)的数据表来对寄存器进行编程。发送I2C数据以对寄存器进行编程并访问数据。



1> Drad..:

每个SOC(片上硅)或微控制器都将具有一个I2C控制器,该控制器提供了一种与I2C设备(例如摄像机传感器,PMIC,温度传感器等)进行连接和通信的方法。用于配置和使用此I2C控制器的驱动程序称为平台驱动程序。该I2C控制器称为平台设备。大多数情况下,平台设备将成为SOC的一部分。I2C控制器的寄存器是使用平台驱动程序编程的。这些寄存器可以说是ARM存储器映射的,并且可以在SOC的TRM上使用。

现在,所有可以通过I2C控制器(如摄像机传感器,PMIC,温度传感器等)连接到SOC或微控制器的I2C设备都需要一个驱动器来控制它们。该驱动程序称为设备驱动程序。这些设备的寄存器不是SOC内存映射的一部分。需要I2C设备(如OV5640摄像机传感器)的数据表来对寄存器进行编程。发送I2C数据以对寄存器进行编程并访问数据。


推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了win7系统休眠功能无法启动和关闭的解决方法,包括在控制面板中启用休眠功能、设置系统休眠的时间、通过命令行定时休眠、手动进入休眠状态等方法。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
author-avatar
mobiledu2502899157
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有