![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设备树
文章平均质量分 86
木士易
不考虑今天,何来未来
展开
-
嵌入式Linux Pinctrl 子系统和 GPIO 子系统
大多数 SOC 的 PIN 都是支持复用的, 比如 I.MX6ULL 的 GPIO1_IO03 既可以作为普通的 GPIO 使用,也可以作为 I2C1 的 SDA 等等。 此外我们还需要配置 pin 的电气特性, 比如上/下拉、 速度、 驱动能力等等。 传统的配置 pin 的方式就是直接操作相应的寄存器, 但是这种配置方式比较繁琐、 而且容易出问题(比如 pin 功能冲突)。原创 2022-01-22 11:20:18 · 1385 阅读 · 0 评论 -
嵌入式Linux设备树下的 platform 驱动
Linux 系统中 platform 平台框架包括总线、 设备和驱动, 其中总线不用我们去操心, Linux 内核中会自动管理, 我们只需要关系设备和驱动如何实现。 在不支持设备树的内核中, 我们需要分别实现platform_device 和 platform_driver, 其中 platform_device 是在平台文件中实现的。 在支持设备树的内核中,我们就不用实现 platform_device 了, 而是在设备树文件中添加设备信息。 下面看一下在设备树文件中添加设备信息。原创 2022-01-22 10:59:21 · 1285 阅读 · 1 评论 -
嵌入式Linux设备树常用 of 函数
设备树描述了设备的详细信息, 这些信息包括数字类型的、 字符串类型的、 数组类型的, 我们在编写驱动的时候需要获取到这些信息。 比如设备树使用 reg 属性描述了某个外设的寄存器地址为 0X02005482,长度为 0X400, 我们在编写驱动的时候需要获取到 reg 属性的 0X02005482 和 0X400 这两个值, 然后初始化外设。 Linux 内核给我们提供了一系列的函数来获取设备树中的节点或者属性信息, 这一系列的函数都有一个统一的前缀“ of_” , 所以在很多资料里面也被叫做 OF 函数。原创 2022-01-21 14:35:26 · 945 阅读 · 0 评论 -
嵌入式Linux添加设备树节点
查看设备树节点方法以 imx6ull 开发板为例, 打开内核源码 linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/boot/dts 目录,输入命令编辑设备树文件 vim imx6ull-14x14-evk.dts。打开文件后, 我首先找到根节点, 如下图所示:在根节点的末尾准备添加设备节点, 那么怎么来验证自己添加设备节点成功了呢?设备树可以在 linux 系统里面以文件或者是目录的形式表示出来, 这里有两种方法。方法一, 进入到开发板的/proc/dev原创 2022-01-21 13:57:08 · 4135 阅读 · 0 评论 -
Linux 设备树
要想了解为什么会有设备树, 设备树是怎么来的, 我们就要先来回顾一下在没有设备树之前我们是怎么来写一个驱动程序的。 以字符设备驱动代码框架为例, 我们一起来回顾下。原创 2022-01-20 11:17:52 · 2945 阅读 · 0 评论