当前位置: 首页 > news >正文

spi_device,spi_driver,spi_controller,spi_res,spi_transfer,spi_message之间的联系

目录

1. spi_device

2. spi_driver

3. spi_controller (旧称 spi_master)

4. spi_transfer

5. spi_message

6. spi_res (通常指 SPI 资源)

各组件联系与数据流

图示关系

总结


1. spi_device

  • 概念代表一个具体的 SPI 设备(如传感器、Flash 存储器等)。

  • 作用

    • 存储设备的物理参数:SPI 模式(CPOL/CPHA)、时钟频率、片选线(CS)等。

    • 通过设备树(Device Tree)或板级代码静态注册。

    • 关键字段

    • struct spi_device {
          struct device dev;      // 继承设备基类
          u32 max_speed_hz;       // 最大时钟频率
          u8 chip_select;         // 片选引脚编号
          u8 mode;                // SPI 模式(CPOL, CPHA 等)
          // ...
      };

      2. spi_driver

    • 概念SPI 设备的驱动,负责管理与其匹配的 spi_device

    • 作用

      • 实现设备的初始化(probe)、销毁(remove)和操作接口(如读写)。

      • 通过 spi_register_driver 注册到 SPI 总线。

    • 关键结构

    • struct spi_driver {
          const struct spi_device_id *id_table; // 支持的设备 ID 列表
          int (*probe)(struct spi_device *spi); // 设备探测函数
          int (*remove)(struct spi_device *spi); // 设备移除函数
          struct device_driver driver;          // 继承驱动基类
      };

      3. spi_controller (旧称 spi_master)

    • 概念:代表硬件上的 SPI 控制器(如 SoC 内部的 SPI 模块&#

相关文章:

  • DSP笔记
  • 【商城实战(7)】商城项目中用户信息管理功能的全栈开发
  • java使用第三方库 semver4j 处理语义化版本,递增,对比等操作
  • 初识Python:一门简洁而强大的编程语言
  • 大语言模型(LLM)和嵌入模型的统一调用接口
  • GB28181开发--SRS+Jessibuca‌
  • LINUX网络基础 [一] - 初识网络,理解网络协议
  • 集合论--形式化语言里的汇编码
  • vulnhub渗透日记23:bulldog
  • SQLite Having 子句详解
  • java基础100道面试题
  • AT32F421专题---PA9 PA10的I2C1连接AT24C02失败及解决
  • Diffusion模型中时间t嵌入的方法
  • Teaching Small Language Models Reasoning throughCounterfactual Distillation
  • Hive-07之企业级调优
  • Docker部署MySQL
  • Python:简单的爬虫程序,从web页面爬取图片与标题并保存MySQL
  • 大模型核心要素完全解析:从数字神经元到智能对话的奥秘
  • go语言数据类型
  • (50)[HGAME 2023 week2]before_main
  • 中办、国办关于持续推进城市更新行动的意见
  • 曾犯强奸罪教师出狱后办教培机构?柳州鱼峰区教育局回应
  • 四个“从未如此”使巴以加沙战火绵延时间创下历史之最
  • 外交部:各方应为俄乌双方恢复直接对话创造条件
  • 彭丽媛同巴西总统夫人罗桑热拉参观中国国家大剧院
  • 超新星|18岁冲击中超金靴,王钰栋的未来无限可能