.dts相当于.c DTS的源码文件
DTC工具相当于gcc编译器 将dts 编译成 dtb
dtb相当于bin文件 或可执行文件
编译dtb 文件的方法
在linux内核文件夹中
make imx6ull-alientek-emmc.dtb
在执行上述代码之前 要把
imx6ull-alientek-emmc.dtb删除 否则会提示已经存在
dts的结构 层层结构
学校 部门 学院 专业 个人 个人信息
dts 基本语法
- ‘/’ 开始
- 从/根节点开始描述设备信息
- 在/根节点外又一些&cpu0这样的语句是 追加
- 节点名字 完整的要求
类似这样的语法
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "imx6ull.dtsi"
/ { //一级子节点
/*
* Skeleton
*/
compatible = "snps,arc";
clock-frequency = <80000000>; /* 80 MHZ */
#address-cells = <1>;
#size-cells = <1>;
chosen { };
aliases { };
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "snps,arc770d";
reg = <0>;
};
};
//imx6ull.dtsi
aliases {
};
...
...
...
/
model = "Freescale i.MX6 ULL 14x14 EVK Board"; //属性
compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull"; //属性
chosen {
stdout-path = &uart1;//属性
};
memory { //内存
reg = <0x80000000 0x20000000>; //起始地址 和 长度
};
reserved-memory{
};
backlight{
};
pxp_v4l2 {
};
regulators {
};
sound {
};
spi4 {
};
}
系统启动后可以在根文件系统中看到设备树的节点信息
在/proc/device-tree/bace路径当中存放着设备树信息!!
ls之后 发现 就是一级子节点
SOC(System on Chip)文件夹一般是嵌入式系统中存放嵌入式操作系统的关键文件夹之一。SOC 文件夹通常包含以下文件和子目录:
1 启动代码(Boot Code):SOC
文件夹中通常会包含启动代码,包括裸机启动代码和操作系统引导代码。这些代码主要用于初始化硬件环境、加载操作系统、配置系统内核等。2 驱动程序(Driver):SOC
文件夹中包含系统所需的驱动程序,包括设备驱动、文件系统驱动、网络驱动、输入输出驱动等。这些驱动程序负责将底层硬件抽象为一组通用接口,供应用程序调用。3 应用程序(Application):SOC
文件夹中还可以包含应用程序,这些应用程序通常是用户需要运行在嵌入式系统上的软件应用,比如图形界面应用程序、网络服务器应用程序、数据处理应用程序等。4 其他文件和目录:SOC 文件夹还可能包含其他文件和子目录,例如系统配置文件、库文件、编译器工具链、文档资料等。
总的来说,SOC
文件夹的作用是为嵌入式系统提供必要的文件和资源,在启动代码、驱动程序和应用程序等方面提供支持,为嵌入式系统的开发、调试和部署提供基础。
以及后面的of函数
用于查找设备树节点的相关信息 例如属性
后面的dtsled就是将 这个物理地址放到设备树当中
用of查找 然后 将查找到的地址转成虚拟地址
然后进行一系列的操作