设备树知识小全(一)

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

以前刚刚开始打开源码的时候,发现竟然有的文件是以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

目录
相关文章
|
存储 缓存 安全
U-BOOT小全(五):BootLoader源码(SPL-UBoot 2)
U-BOOT小全(五):BootLoader源码(SPL-UBoot 2)
724 0
|
Linux API
嵌入式Linux中的 gpio、gpiod基本分析
嵌入式Linux中的 gpio、gpiod基本分析
1526 0
交叉编译安装tslib
交叉编译安装tslib
428 0
|
Linux
LINUX CUPS下载源码并编译
LINUX CUPS下载源码并编译
942 0
|
11月前
|
人工智能 测试技术 API
通义灵码 + 魔搭MCP:全流程构建创空间应用
最近,通义灵码上线 MCP(ModelScope Cloud Platform)功能,从之前代码生成及修改的基础功能,到可以使用MCP服务连接更多功能,开发者可以实现从 代码爬取、模型推理到应用部署
2868 27
|
存储 网络协议 Linux
第七问:你了解大端和小端字节序吗?
大端和小端是计算机中数据存储的两种字节序方式。大端(Big Endian)将高位字节存储在低地址,小端(Little Endian)将低位字节存储在低地址。大端主要用于网络通信和某些文件格式,确保数据传输的一致性;小端广泛应用于本地计算和硬件优化,提高处理速度。现代大多数 PC 和嵌入式设备使用小端字节序,如 x86 和 ARM 架构。
|
Linux C语言 SoC
设备树知识小全(二)
设备树知识小全(二)
816 0
|
Linux SoC
Linux设备树(DTS)介绍
**设备树(DTS)是Linux中用于描述硬件信息的文本文件,旨在减少内核与平台相关代码的耦合。DTS文件包含静态硬件配置,不支持动态变更。它被编译成DTB二进制文件,供内核在启动时解析以了解硬件布局。设备树解决了ARM体系结构代码维护的复杂性问题,通过解耦实现vendor修改的独立和共二进制目标。设备树overlay允许对配置进行增量修改,遵循特定规则,如dts覆盖dtsi,先引用后修改。调试时,可使用内置工具反编译dtb或dtbo映像为dts文本以检查内容。**
1450 7
|
传感器 算法 物联网
OTA升级
【7月更文挑战第20天】OTA升级
2403 3
|
C++
使用 QML 类型系统注册 C++ 类型
使用 QML 类型系统注册 C++ 类型
699 0

热门文章

最新文章

下一篇
开通oss服务