设备树的引进和作用

本文讲述了在Linux系统中,特别是ARM芯片的应用中,如何通过设备树管理和替换LED驱动的GPIO引脚。设备树被引入以解决内核中硬件资源描述的问题,尽管设备树最初并非Linux独创,但它在驱动程序中提供硬件信息的角色至关重要。
摘要由CSDN通过智能技术生成

以 LED 驱动为例,如果想更换 LED 的 GPIO 引脚,需要修改程序源码、重新编译驱动、重新加载驱动。

在内核中,使用同一芯片的板子,他们使用的外设资源不一样,比如 LED 需要指定哪个引脚,怎么指定?需要在 C 代码中指定。

但是随着 ARM 芯片的流行,越来越多·的没有技术含量的资源文件被保存在内核中。所以 Linux 之父 Linus 大发雷霆:“this whole ARM thing is a fcking pain in the ass”。

于是 Linux 内核开始引进设备树。设备树并不是重新发明出来的,在 Linux 其他平台如 PowerPC,早就使用设备树来描述硬件了。

有一种错误的的观点,“新设备都是用设备树来写的”。设备树不可能用来写驱动,设备树只是用来给内核里的驱动程序,指定硬件信息。


设备树的框架

为什么叫树?
在这里插入图片描述

怎么描述这颗树?

我们需要编写设备树文件(dts:device tree source),它需要编译为 dtb(device tree blob)文件,内核使用的是 dtb 文件。

dtb 文件是根本,它的语法很简单。下面是一个设备树的示例:
在这里插入图片描述

它对应的 dts 文件如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值