• 设备树的通识


    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。


    一、设备树是什么?

    设备树(device tree),是linux内核中采用的一种参数表示和传递技术。

    它涉及以下内容:

    (1)dts,device tree source,设备树源文件。

    (2)dtc,device tree compiler,设备树编译、反编译、调试工具。

    (3)dtb,device tree blob,二进制设备树镜像文件(dts经过dtc编译得到dtb)。


    二、为什么需要设备树?

    设备树的典型应用场景是内核设备驱动,因此我们以驱动为例分析设备树出现的意义。

    驱动源码包括2大部分,即策略(操作函数)和数据(硬件信息)。

    没有设备树技术之前,策略和数据都在kernel源码中硬编码,这导致kernel源码中充斥着大量的描述硬件信息的文件,污染内核。


    三、设备树技术如何工作?

    首先,驱动开发者根据硬件和自己的需求,编写或者改写dts。

    接着,在编译kernel时,kernel内部会先编译出dtc,然后利用dtc将dts加工成dtb。

    接着,uboot在启动kernel时,会告知kernel在哪里找dtb。

    最后,在kernel启动初期,会调用内部函数去解析dtb,得到硬件信息,并组装成数据结构,配合策略函数工作。


    四、设备树应该怎么学?

    第一层:了解级。不做具体开发。理解设备树原理和实现过程、应用情况即可。

    第二层:入门级。基本会用。第一层 + 理解dts格式和关键词、会简单修改和适配。

    第三层:深入级。全面掌握。第二层 + 深入理解dts实现的全部关键代码。

    第四层:资深级。丰富经验。第三层 + 熟悉各种芯片平台、各内核版本的设备树具体实现


    五、本系列有哪些内容?

    本课程主要内容1:设备树整个实现流程,源码级分析和梳理。

    本课程主要内容2:设备树源码dts的格式和关键词解读。

    本课程主要内容3:设备树实战验证,基于HI3516DV300平台。

  • 相关阅读:
    分布式微服务架构下网络通信的底层实现原理
    linux 时间和北京时间对不上
    嵌入式分享合集117
    Ansible Automation Platform - 导入外部主机清单
    Spring之@Column的注解详解
    Vue 中指令v-bind的补充、v-for的使用,两者的结合使用。
    Linux - 查看磁盘空间占用
    一文探讨以太坊转向POS后是否会被认定为证券?
    计算机网络-谢希仁-第7版 第5章 运输层
    亚马逊电动移动设备法规、标准和要求准则!!!
  • 原文地址:https://blog.csdn.net/oqqHuTu12345678/article/details/127449309