四. 设备树

一. 简介

设备树其实就是描述开发板上的硬件信息,由于其结构像现实中的大树一样,所以这种结构就叫做设备树。

二. DTS、DTB和DTC关系

DTS(devcie tree source):设备树源码文件
DTB(device tree binary):将 .dts 编译后得到二进制文件,下载到 DDR 中的是 .dtb 文件
DTC(device tree compiler):将 .dts 编译为 .dtb 的编译工具,它有个文件夹,经过编译后得到 

而DTSI是通用的头文件,表示SOC的共同信息,同一芯片不同板子,我们一般是新建一个板级文件board.bts,在此文件添加设备树信息,并且#include "xxx.dtsi"

三. 设备树内容属性介绍

3.1 节点名称

node-name@unit-address  //node-name:节点名字 unit-address:表示寄存器基地址或设备地址,如下serial@101f0000
label:node-name@unit-address        // 引入label目的就是为了方便便访问节点,可以直接通过&label来访问这个

3.2 compatible

compatible 属性值为字符串列表,用于将设备和驱动绑定起来,字符串列表用于选择设备所需要使用的驱动程序。

"manufacturer,model"     //anufacturer :厂商  model:模块对应的驱动名

一般驱动程序文件都会有一个OF匹配表,此OF匹配表保存着一些compatible值,如果设备节点的compatible属性值和OF匹配表中的任何一个值相等,那么就表示设备可以使用这个驱动

3.3 model 属性

model 属性:描述设备模块信息,比如名字什么的,如:model = “wm8960-audio”。

3.4 status 属性

status 属性:描述设备状态,如:okay - 设备可操作,disabled - 设备不可操作

3.5 #address-cells 和 #size-cells 属性

#address-cells 和 #size-cells 描述⼦节点应如何编写 reg 属性值,一般 reg 属性是某个外设的寄存器地址范围信息。

3.6 ranges 属性

ranges它是一个地址映射/转换表,如果 ranges 属性值为空值,说明子地址空间和父地址空间完全相同,不需要进行地址转换。

3.7 aliases 节点

用 aliases 节点给多个同类型的控制器分配唯一编号,便于Linux内核区分。在Linux启动时会解析aliases节点。

3.8 chosen 节点

chosen 并不是一个真实的设备,主要用于将 uboot 中的 bootargs 环境变量值传递给 Linux 内核作为命令行参数

四. 移植修改的DTS

如果没有挂载tftp的话,我们就只能编译SDK生成.img镜像文件,重新烧录镜像到开发板中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值