设备树学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

提示:这里可以添加本文要记录的大概内容:

—如果做嵌入式linux驱动开发就避不开设备树概念。设备树就是一个告诉内核有哪些设备的一个文件。

提示:以下是本篇文章正文内容,下面案例可供参考

一、设备树是什么?

设备树就是一个告诉内核板子上有哪些设备的一个文件。

二、它的要点

  1. 它的后缀名是.dts
  2. 一个板子对应一个.dts文件

三、DTS、DTB和DTC的关系

.dts相当于.c就是源码文件。
DTC工具相当于gcc编译器,将dts文件编译成dtb文件
dtb相当于bin文件或可执行文件。
通过

make dtb

编译所有的dts文件
通过

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- system-top.dtb -j10

编译成特定的.dtb文件

四、DTS基本语法

  1. 设备树也有头文件,它的后缀是dtsi。可以将一款SOC他的所有设备/平台的共有信息提出来,作为一个通用的.dtsi文件。
  2. &这个符号是追加的意思
/*
 * CAUTION: This file is automatically generated by Xilinx.
 * Version:  
 * Today is: Sat Apr  2 06:21:04 2022
 */

//版本1的意思
/dts-v1/;

//包含共有的dtsi头文件
#include "zynq-7000.dtsi"
#include "pl.dtsi"
#include "pcw.dtsi"

/ {
	//属性
	model = "Alientek ZYNQ Development";
	//1级子节点
	chosen {
		bootargs = "console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait";
		stdout-path = "serial0:115200n8";
	};
	
	aliases {
		ethernet0 = &gem0;
		i2c0 = &i2c2;
		i2c1 = &i2c0;
		i2c2 = &i2c1;
		serial0 = &uart0;
		serial1 = &uart1;
		spi0 = &qspi;
	};
	memory {
		device_type = "memory";
		reg = <0x0 0x20000000>;
	};
};
// & 追加
&gem0{
		local-mac-address = [00 0a 35 00 1e 53];
};

&qspi{
		
		#address-cells = <1>;
		#size-cells = <0>;
		flash0: flash@0 {
					compatible = "n25q512a","micron,m25p80";
					reg = <0x0>;
					#address-cells = <1>;
					#size-cells = <1>;
					spi-max-frequency = <50000000>;
					partition@0x00000000 {
									label = "boot";
									reg = <0x00000000 0x00500000>;
					};
					partition@0x00500000 {
							label = "bootenv";
							reg = <0x00500000 0x00020000>;
					};
					partition@0x00520000 {
							label = "kernel";
							reg = <0x00520000 0x00a80000>;
					};
					partition@0x00fa0000 {
							label = "spare";
							reg = <0x00fa0000 0x00000000>;
					};
		  };
};

  1. 节点名字的要求
    在这里插入图片描述
  2. 在这里插入图片描述
    unit-address一般是外设寄存器的起始地址,有时候是I2C的设备地址 ,或者其他含义,具体节点具体分析。
  3. intc:interrupt-controller@00a01000
    冒号前面是标签label,后面才是名字。
    引入标签的目的是为了方便访问节点

五、设备树在系统中的体现

  1. 系统启动以后可以在根文件系统里面看到设备树的节点信息。目录是/proc/device-tree cat命令可以查看属性信息
  2. 内核启动的时候会解析设备树,然后在/proc/device-tree/目录下呈现出来。

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值