Pinctrl子系统_01_Pinctrl子系统介绍

news/2024/11/8 14:53:16/

本节介绍在Pinctrl子系统中,将会学习哪些内容。

Pinctrl作用

Pinctrl:Pin Controller,顾名思义,就是用来控制引脚的。

一个芯片有成百上千个引脚,这些引用要怎么配置,配置成什么功能,都是通Pinctrl子系统来实现的。

如下图所示,对于一个芯片,有很多个控制器,比如GPIO控制器,I2C控制器,UART控制器,这些控制器都需要操作到引脚。但是不同的控制器,他们需要的引脚配置通常也不同

要如何实现不同引脚的配置的,就可以使用Pinctrl子系统来配置。

 Pinctrl有三大功能:

  1. 引脚的枚举与命名(Enumerating and naming)
    枚举:列出芯片有哪些引脚
    命名:各个引脚的名字叫什么
  2. 引脚复用(Multiplexing):比如用作GPIO、I2C或其他功能
  3. 引脚配置(Configuration):比如上拉、下拉、open drain、驱动强度等

实际上,在芯片内部并没有一个硬件Pinctrl——引脚控制器,但引脚控制器也并不完全是一个软件上的东西,他的背后是有硬件支持的。

首先,引脚控制器是有对应驱动的,芯片引脚控制器的驱动代码,通常是由芯片原厂提供的,是由原厂的BSP工程师编写的,一般的驱动工程师只需要使用就可以了。

通常是在设备树中使用:

  1. 指明使用哪些引脚
  2. 指明复用为哪些功能
  3. 配置为哪些状态

在一般的设备驱动程序中,甚至可以没有Pinctrl的代码。

后续内容

简单的说,后续需要掌握的内容如下:

  1. Pinctrl驱动程序如何编写,里面的重要结构体是怎么样的
  2. 分析如何在设备树中使用Pinctrl
  3. 驱动程序和设备树中的配置是如何联系到一起的,设备树中的配置是如何生效的,很明显内核会帮忙我们调用对应Pinctrl子系统中的代码,我们需要知道是如何实现的,要去分析这个过程

那么,要如何学习这些内容:

  1. 基于使用的角度驱动工程师要掌握的Pinctrl重要概念
  2. Pinctrl子系统使用示例
  3. 主要数据结构与调试方法

  4. pincontroller的数据结构构造过程情景分析(会拆分为很多节)

    1. 根据开发板的设备树信息动态地演示

  5. client端的数据结构构造过程情景分析(会拆分为很多节)

    • 根据开发板的设备树信息动态地演示

  6. 编写一个虚拟的pincontroller驱动程序

其中,1-2主要是说明如何使用(use)Pinctrl子系统;

3-4主要是说明Pinctrl子系统的实现,先说明主要的数据结构,然后根据实际的开发板来动态的演示,跟踪数据结构的构造过程,我们理解这了些数据结构怎么构成,对这个部分的实现也就基本了解了;

5主要是看看设备树中的信息,怎么和Pinctrl子系统产生联系,我们需要来分析这个过程,这个过程同样会设涉及一些数据结构,类似的,我们理解这了些数据结构怎么构成,对这个部分的实现也就基本了解了;

6主要是编写一个虚拟的pincontroller驱动程序,用来加深我们的理解。


http://www.ppmy.cn/news/93352.html

相关文章

[快速入门前端17] CSS 选择器(6) 选择器总结

基本选择器 选择器说明语法通配符作用范围为所有标签,用于页面整体样式* { color: red }元素作用于同种标签,不能进行差异化样式设定p { color: red }类别作用于我们自行设定的类别,是使用频率最高的选择器.myClass { color: red }ID选取当前…

辅助驾驶功能开发-功能规范篇(24)-1-影子模式功能触发规范

1.影子模式 1.1. 影子模式介绍 影子模式的作用是在人类驾驶员参与的情况下,开启系统中除执行器外的所有模块,不停收集感知数据、道路交通者行为和预测结果,以及系统作出的决策和规划结果,并收集人类的驾驶行为,并将所有数据收集供开发者进行数据的回灌、对比、校验和训练…

15JS06——流程控制-循环

目标: 1、循环 2、for循环 3、双重for循环 4、while循环 5、do while循环 6、continue break 7、命名规范以及语法格式 一、循环 1、循环的目的 可以重复执行某些代码 2、JS中的循环 for循环 while循环 do…while循环 二、for循环 在程序中,一…

基于深度强化学习的目标驱动型视觉导航泛化模型

深度强化学习在目标驱动型视觉导航的泛化 参考论文《Towards Generalization in Target-Driven Visual Navigation by Using Deep Reinforcement Learning》 文章目录 深度强化学习在目标驱动型视觉导航的泛化1. 目标驱动型视觉导航问题2. 创新点和解决的问题2.1 创新点2.2 解…

python爬虫之excel解析详解

Excel是一种数据格式化和存储数据的工具,其表格形式非常适合存储和呈现数据,不少企业和业务都使用Excel来进行数据的存储与处理,因此对Excel解析的需求也越来越高。本文主要介绍Python中如何使用openpyxl解析Excel文件,通过一些实…

第六篇:强化学习策略迭代 通俗解释

你好,我是zhenguo(郭震) 今天,介绍强化学习第6篇:策略迭代 策略迭代是马尔可夫决策过程(MDP)中的一种求解方法,当然也是强化学习常用求解方法。 它的思想可以用通俗的方式解释如下&a…

2024王道数据结构考研丨第六篇:查找、排序

到此,2024王道数据结构考研笔记专栏“基础知识”部分已更新完毕,其他内容持续更新中,欢迎 点此 订阅,共同交流学习… 文章目录 第七章 查找7.1查找表相关概念 第八章 排序8.1排序的基本概念8.2 插入排序8.2.1直接插入排序8.2.2折半…

Convolutional Neural Network 的 PyTorch 实现(二)使用TensorRT进行推理加速

本文章针对 Windows 10 系统 目录 TensorRT 环境安装与配置zlibwapi.dll 安装与配置TensorRT 实现 CUDA CuDNN的安装: 参考文章 TensorRT 环境安装与配置 下载链接 TensorRT 本文章针对 Windows10、CUDA10.2 的PC,选择相对应的安装包完成下载。 解压后在…