设备树知识小全(一)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrustZone_Hcoco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值