I.MX6U-驱动开发-4-linux设备树

设备树(DTS)是Linux内核用于描述硬件配置的一种方式,它将硬件信息从内核源码中分离,简化了.c文件。DTS源码(.dts)经DTC工具编译成DTB二进制文件,供内核使用。设备树包含节点、属性等元素,如aliases、chosen节点和compatible属性。驱动程序通过OF函数获取设备树信息。本文深入探讨了设备树的结构、语法和在系统中的体现。
摘要由CSDN通过智能技术生成

1.什么是设备树

1.像树形结果的设备。树干是iic,spi,树尖是各类传感器

2.在单片机裸机开发中,例如spi这种,各类信息如速度,引脚都是在.c文件里面写死的。这样就会导致linux内核中存在很多.c文件,因此为了减少这么多内容,把这些东西分离出来写到设备树中。

2.DTS,DTB,DTC的关系

.dts相当于.c,就是DTS源码文件。 

DTC工具相当于gcc编译器,将dts编译为dtb。

执行命令(先编译内核生成DTC):

make dtbs       编译所有    

make all         编译内核的时候默认编译方式

make imx6ull_emmc_alientke.dtb    编译指定的dtb文件

dtb相当于bin文件,也叫可执行文件

3.DTS基本语法

1.设备树也有头文件,扩展名为.dtsi

对于头文件,存放的是通用的一些设备放在头文件中,如果是独有的需要单独追加放在dts中

2.DTS也是从   开始,从 / 根节点开始描述设备信息

3.在根节点信息外有 &cpu0这样的语句是追加

4.node-name@unit-address,其中unit-address是设备地址,但也有可能不是

5.对于 分开的两部分,前面是标签,后面是名字,引入标签是通过标签可以直接访问名字简化因为名字过长问题

4.设备树在系统中的体现

系统启动以后可以在根文件系统里面看到设备树的节点信息。

4.1特殊节点

aliases

定义别名,但是一般使用&label标签进行别名设置

chosen

chosen 节点主要是为了 uboot 向 Linux 内核传递数据,重点是 bootargs 参数

4.2特殊属性

compatible:值是字符串,用来兼容性属性

model:值是字符串,用来描述模块

status:值是字符串,用来描述设备状态

address-cells:值是无符号整型,用来描述拥有子节点设备中,子节点的的地址信息

size-cells:值是无符号整型,用来描述拥有子节点设备中,子节点的的长度信息

注意事项:这两个影响的是子节点。

reg:值一般是(address,length),用于描 述设备地址空间资源信息,一般都是某个外设的寄存器地址范围信息

rangges:值可以为空或者按照(child-bus-address,parent-bus-address,length)格式编写的数字矩阵

 name:字符串,被淘汰了

device_type:字符串,此属性只能用于 cpu 节点或者 memory 节点

根节点下的compatible:通过根节点的 compoatible 属性查看是否支持此设备,如果支持的话设备就会启动 Linux 内核

5.OF操作函数

1.驱动通过OF函数获取设备树属性内容。

2.驱动要想获取设备树的节点内容,需要先找到节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值