linux dtb的编译打包过程_小白带你探索Linux设备树1_框架篇V1

70e7ca54b364b9170d3a61f732312527.png

原文博客链接:

小白带你探索Linux设备树1_框架篇V1_linux,驱动程序,arm_qq_35712169的博客-CSDN博客​blog.csdn.net
a666ec468ef0b426c0d3d1b0dcf76751.png

注:感觉CSDN的排版会好点

目录一览

  • 0. 说在前面的话
  • 1. 什么是设备树
    • 1.1 设备树的定义
    • 1.2 设备树的使用
  • 2. ARM Linux设备树的起源
    • 2.1 忍无可忍
    • 2.2 事件背景
  • 3. DT的文件组织结构
    • 3.1 dts目录简介
    • 3.2 dts分析文件下载
    • 3.3 完整dts文件的组成
  • 4. DT的语法组织框架
    • 4.1 DT的基本语法
    • 4.2 DT的简化框架
    • 4.3 根节点的model与compatible
    • 4.4 节点名字
    • 4.5 reg属性
    • 4.6 interrupts属性
    • 4.7 其他属性
    • 4.8 特殊节点
  • 5. 总结
  • 参考文献

0. 说在前面的话

学习过程中的总结记录,感悟比较浅显,经不起推敲,欢迎批评指正!!!

文章主体是以imx8qm-mek评估板为实例进行介绍设备树。

1. 什么是设备树

1.1 设备树的定义

官方定义:

The primary purpose of Device Tree in Linux is to provide a way to describe non-discoverable hardware. This information was previously hard coded in source code.

ARM设备树出现之前的电路板硬件的细节被硬编码到内核中了,导致内核代码臃肿难以维护,因此将内核与那些臃肿的硬件代码解耦,方便维护。

1.2 设备树的使用

首先看下设备树如何被被加载到内核当中的过程

361e7a3377c87d1f7eef9088980a024a.png

首先将上图涉及到的dts、dtb、dtc简单说明下。

  • dts:device tree source 设备树源文件,也就是我们进行编辑的文件,用于增删相关的硬件细节,可以看做C之类的代码,并且支持部分C语法,后面会详谈;
  • dtb:device tree blob 可以视为二进制版本的dts,内核可以解析;
  • dtc:device tree compiler 设备树编译器,dtb文件就是通过dtc将dts文件编译而成的。个人感觉可以类比C语言的编译。

上图可以总结为:

利用dtc将dts文件编译为可被内核解析的dtb文件,通过bootloader的引导,kernel会将dtb文件加载到内存,并进行解析。 在没引进设备树之前,当每次更改设备,都需要重新编译内核,而现在仅仅需要编译设备树即可,省时省力。

2. ARM Linux设备树的起源

2.1 忍无可忍

设备树出现的原因,还得从2011年3月17日Linus Torvalds的那封信说起,下面是信件的截图:

94e926f3fe20b73e4526bfe5074fdd9a.png

因ARM带来大量的板级细节代码,导致内核中充斥着大量的垃圾代码,最后Linus忍无可忍了,于是乎这就成了ARM Linux设备树诞生的契机。

2.2 事件背景

对事件背景感兴趣的详见wowo写的Device Tree(一):背景介绍,我就不在这里班门弄斧了。下面是wowo的总结的部分内容:

每次正式的linux kernel release之后都会有两周的merge window,在这个窗口期间,kernel各个部分的维护者都会提交各自的patch,将自己测试稳定的代码请求并入kernel main line。每到这个时候,Linus就会比较繁忙,他需要从各个内核维护者的分支上取得最新代码并merge到自己的kernel source tree中。Tony Lindgren,内核OMAP development tree的维护者,发送了一个邮件给Linus,请求提交OMAP平台代码修改,并给出了一些细节描述:

  • 1、简单介绍本次改动
  • 2、关于如何解决merge conficts。有些git mergetool就可以处理,不能处理的,给出了详细介绍和解决方案

一切都很平常,也给出了足够的信息,然而,正是这个p

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值