linux设备树

提示:最近在学习设备树相关知识点,以此记录学习的点点滴滴。


前言

最近在学设备树,以此记录


提示:

一、设备树是什么?

简单来讲,设备树就像是一棵树,树有主躯干,然后把设备挂在这些分支干上。这就叫设备树。不用感觉这个名词很神秘。任何感觉神秘的东西,只要我们把它找出来,心中自然就没有疑惑了。设备树实际存在于linux内核目录下的arch/arm/boot/dts目录下面,看下图,在这个目录下有很多设备树文件,由于我的板子是i,mx6ull的,所以打开这个文件进行演示。
在这里插入图片描述

二、使用步骤

0.设备树有什么作用

说了这么多,设备树有什么作用呢?设备树的作用在于和驱动的匹配。当linux内核将一个设备的描述与设备树中对设备的属性描述内容进行匹配,内核中维护了一个兼容性列表of_device_id[],这里先不深入。
在这里插入图片描述

1.利用源文件编译出设备树文件

我们在设置bootargets参数进行tftp下载内核镜像的时候一并把设备树文件一起下载进去了。那么设备树文件怎么来的呢?在内核目录下输入make dtbs 命令,就会开始编译设备树源文件.dts 生成 .dtb 的设备树文件。类似c语言的.c源文件编译成.o文件一样。当执行这个命令以后

2.设备树源文件里面有什么?

这里简单列一下设备树主要内容:

/*设备树也和c语言一样,支持这样的注释*/

/*设备树主要包含
#头文件
根节点	|属性描述

		|子节点
		
		|字节点	|属性描述		
				|子节点
				
		|子节点
		
		|子节点
*/

//根节点包含的头文件,类似c语言
#include <dt-bindings/input/input.h>
#include "imx6ul.dtsi"
/{
	//这是根节点的属性描述
	model = "Freescale i.MX6 UltraLite 14x14 EVK Board";
	compatible = "fsl,imx6ul-14x14-evk", "fsl,imx6ul";
	
	aliases{	//具体这些子节点中还包含着类似上面的层级结构
	};
	
	cpus{
	};
	
	intc: interrupt-controller@00a01000{
	};
	
	soc{	//子节点描述着当前节点上挂载着什么片上外设
	}};

是的,上面只是简单的一个设备树的雏形,对应在/proc/device-tree下能看到设备树挂载的设备,框出来的两个文件夹就是上面例子中的。至于不是文件夹的那些文件,则是当前节点的属性描述
在这里插入图片描述


总结

这里就是今天记录的内容,揭开设备树神秘的面纱。后续会陆续补上设备树文件的详细语法。2021/03/04

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
设备树(Device Tree)是一种描述嵌入式系统硬件设备的文件格式,用于在Linux内核中动态配置和管理硬件。设备树采用树形结构,描述了开发板上的各种设备信息,比如CPU数量、内存基地址、接口上连接的设备等。设备树文件的扩展名为.dts,编译后得到.dtb文件。在引导Linux内核时,Bootloader会将.dtb文件的地址传递给内核内核会根据设备树文件中描述的信息创建和注册相关设备。通过设备树,开发者可以在不修改内核源代码的情况下配置和管理硬件设备。在编译Linux源码时,可以使用"make dtbs"命令来单独编译设备树文件,而不是编译整个源码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Linux 设备树](https://blog.csdn.net/m0_69211839/article/details/130601344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [linux设备树](https://blog.csdn.net/qq_27094347/article/details/121012569)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值