设备树知识小全(一)

简介: 设备树知识小全(一)

以前刚刚开始打开源码的时候,发现竟然有的文件是以dts结尾的,感叹一句,就溜了。

后来才知道这个就是设备树文件,这次学习也是因为最近写一点东西需要解析这个文件的参数。我的理解这个本质上就是配置文件,去获取解析设备树得信息,来为程序使用。

为了避免这个任务途中遇到一些不可预料得问题,自己因为基础不扎实,不知道去哪里解决。于是这里来学习一下设备树文件。整个学习路线很简单:

1、设备树是什么?

2、设备树有啥用?

3、设备树怎么用?

至于那些来历啊、传闻啊,确实很有意思,但是有很多的博客和书有写,我就不重复那个部分,来重复一下知识。

1、设备树是什么?

我的理解,就是以前对于很多的冗余重复的东西进行来组件化。以前每个硬件都有自己的代码进行细节描述,但是将这些代码组件化后,你每个板子需要用什么,给你个dts树架子,你需要啥,就选啥,少啥就加啥。

就别重复整了。

同时讲内核和dts组合,那些细节代码哪儿凉快哪里待着,因为我内核是需要接触硬件的一些东西(应用包含了驱动),所以需要板子的细节,但是现在有了dts,那么那些细节代码byebye。

没dts之前–>把板子的信息放在内核的

有dts之后–>dts将硬件细节传输给内核,内核干净了

在设备树中,可描述的信息包括(原先这些信息大多被硬编码在内核中):

·CPU的数量和类别。
·内存基地址和大小。
·总线和桥。
·外设连接。
·中断控制器和中断使用情况。
·GPIO控制器和GPIO使用情况。
·时钟控制器和时钟使用情况。

这些信息都是一些硬件的信息,我最近要解析的就是内存地址,可惜我现在还无从下手。

它基本上就是画一棵电路板上CPU、总线、设备组成的树,Bootloader会将这棵树传递给内核,然后内核可以识别这棵树,并根据它展开出Linux内核中的platform_device、i2c_client、spi_device等设备,而这些设备用到的内存、IRQ等资源,也被传递给了内核,内核会将这些资源绑定给展开的相应的设备。

这里啰嗦几点:1、dts是描述设备信息(硬件板子)的文本

2、dts不是直接用的,而是编译后给内核用的

3、dts不是直接和内核联系,而是通过bootloader将编译后的文件传输给kernel

目录
相关文章
|
8月前
|
Linux API SoC
设备树知识小全(十一):OF是什么?
设备树知识小全(十一):OF是什么?
160 0
|
8月前
|
Linux API C语言
设备树知识小全(十):由设备树引发的BSP和驱动变更
设备树知识小全(十):由设备树引发的BSP和驱动变更
105 0
|
5月前
|
芯片 SoC
【驱动】【设备树】一个简单的系统级芯片(SoC)的设备树节点
【驱动】【设备树】一个简单的系统级芯片(SoC)的设备树节点
58 0
|
8月前
|
Ubuntu Linux
编译替换内核_设备树_驱动_IMX6ULL
编译替换内核_设备树_驱动_IMX6ULL
编译替换内核_设备树_驱动_IMX6ULL
|
8月前
|
Ubuntu Linux 程序员
设备树知识小全(三)
设备树知识小全(三)
152 0
|
8月前
|
Linux
设备树知识小全(四)
设备树知识小全(四)
65 0
|
8月前
|
Linux C语言 SoC
设备树知识小全(二)
设备树知识小全(二)
131 0
|
8月前
|
缓存 Linux API
设备树知识小全(六):设备节点兼容性
设备树知识小全(六):设备节点兼容性
100 0
|
Linux
设备树二(二)
设备树二(二)
85 0
|
Linux C语言 开发者
设备树二(一)
设备树二
198 0