栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux驱动之设备树(1)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux驱动之设备树(1)

1.设备树:设备和树,描述设备树的文件叫做DTS(Device Tree Source),
这个DTS文件采用树形结构描述板级设备,也就是开发板的设备信息,
比如CPU数量、内存基地址、IIC接口上接了哪些设备、SPI接口上接
了哪些设备等等。

2.设备树结构模板:

//1个root节点"/";root节点下面一系列子节点。
/ {
	node1 {
		a-string-property = "A string";
		a-string-list-property = "first string", "second string";
		a-byte-data-property = [0x01 0x23 0x34 0x56];
		child-node1 {
			first-child-property;
			second-child-property = <1>;
			a-string-property = "hello, world";
			};
			child-node2 {
			};
		};
		node2 {
			an-empty-property;
			a-cell-property = <1 2 3 4>;
			child-node1 {
			};
		};
	};
	......
**3.DTS 、DTB和DTC**
3.1设备树源文件扩展名为.dts,DTS是设备源码文件,DTB是将DTS编译
以后得到的二进制文件。将.dts编译为.dtb需要用到DTC工具。
3.2DTC 工具源码在 Linux 内核的 scripts/dtc 目录下,
cripts/dtc/Makefile 文件内容如下:
hostprogs := dtc
always	  := $(hostprogs-y)
dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o 
			srcpos.o checks.o util.objs
tc-objs += dtc-lexer.lex.o dtc-parser.tab.o
........

4.DTS语法
4.1 .dtsi头文件
和C语言一样,设备树也支持头文件,设备树的头文件扩展名为.dtsi
以我用的IMX6ULL为例,在imx6ull-alientek-emmc.dts中有以下内容:

#include 
#include "imx6ull.dtsi"

4.2 设备节点
设备树采用树形结构来描述板子对应的信息,每个设备都是一个节点,
每个节点都通过一些属性信息来描述节点信息。如下:

/ {
 aliases {
 can0 = &flexcan1;
 };
 
 cpus {
 #address-cells = <1>;
 #size-cells = <0>;
 
 cpu0: cpu@0 {
 compatible = "arm,cortex-a7";
 device_type = "cpu";
 reg = <0>;
 };
 };
.......
设备树中节点命名格式: node-name@until-address

其中“node-name”是节点名字,为 ASCII 字符串,节点名字应该能够清晰的描述出节点的
功能,比如“uart1”就表示这个节点是 UART1 外设。“unit-address”一般表示设备的地址或寄
存器首地址,如果某个节点没有地址或者寄存器的话“unit-address”可以不要,比如“cpu@0”、“interrupt-controller@00a01000”。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/729539.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号