RTT设备树调研


什么是设备树

设备树(Device Tree)是一种数据结构,用于描述计算机硬件的布局和配置,特别是在嵌入式系统中。它帮助操作系统内核识别和初始化硬件组件。
记住 DT 应该是与操作系统无关的,因此任何特定于 Linux 的东西都不应该存在。

设备树的主要特点

  • 设备树以树状结构描述硬件组件及其属性,包括 CPU、内存、总线、外设等。
  • 通过设备树,操作系统可以在不修改内核代码的情况下支持不同的硬件平台。
  • 设备树与内核代码分离,使得硬件配置可以独立于软件开发进行修改和更新。

设备树的组成

  • 节点(Node)
    • 每个节点代表一个硬件设备或组件。
    • 节点可以包含子节点,形成层次结构。
  • 属性(Property)
    • 每个节点包含多个属性,用于描述设备的特性,如地址、大小、中断等。

设备树文件

  • 源文件(.dts)
    • 人类可读的文本格式,用于定义设备树结构和属性。
  • 二进制文件(.dtb)
    • 设备树源文件编译后的二进制格式,供引导加载程序和操作系统使用。

设备树是现代嵌入式系统中硬件抽象的重要工具,帮助实现硬件和软件的解耦,提高系统的灵活性和可维护性。

rtthread对设备树目前的支持状态

  1. 有相关软件包GitHub - RT-Thread-packages/fdt: Device Tree package in RT-Thread
  2. 能够看到在开机启动时加载了设备树

    能否动态加载?未知
  3. DM2.0是什么?
  4. 目前能用DM2.0的BSP
BSP
cvitek\cv18xx_aarch64
raspberry-pi\raspi-dm2.0
rockchip\rk3500
rockchip\rk3568
qemu-virt64-aarch64
  1. Duo的bsp里面有dtb而有些bsp没有
  2. RT-Thread-smart启动流程详解RT-Thread问答社区 - RT-Thread里面提及启动时rt_hw_board_init()对设备树如何处理
  3. 修改设备树适配驱动?貌似和linux下做法一致,未知,未涉及领域。

Duo256的设备树情况


不清楚文件来源
multi.its是用于描述 U-Boot 引导加载程序中的多核镜像配置。它定义了多个内核、设备树和配置的布局和属性。

参考文献/不知道的东西

  1. TFTP加载设备树内核&NFS挂载根文件系统演示,ARM-Linux完全入门,用最快的路径实现单片机到ARM-Linux的过度!_哔哩哔哩_bilibili
  2. 【内核驱动】设备树编译和加载_rockchip 单独编译设备树-CSDN博客
  3. DM : Device Model,这是一个用于描述和管理设备的抽象层,特别是在 U-Boot 引导加载程序中。设备模型提供了一种统一的方法来初始化和配置硬件设备。
  4. 设备树使用
  5. RT-Thread-smart启动流程详解RT-Thread问答社区 - RT-Thread
  6. Arduino中文社区
  7. RaspberryPi/docs/0011_SoC设备树DTS分析.md at master · ZengjfOS/RaspberryPi · GitHub

文章作者: Harry Zhang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Harry Zhang !
  目录