一,设备树概念
和平台总线实现的驱动不同的地方在于,设备树将平台设备,也就是 platform_device 进行了完全的抽象,对于不同的设备并不需要去写一个个平台设备。而只是需要修改设备树就行了。设备树是一个用节点描述系统中设备的树状结构。
1,设备树简介
应该把设备树理解成配置文件,并不是一种编程语言,没有绝对的关键字。基于软件分层设计的思想,由于一个soc可能对应多个设备,如果每个设备的设备树都写成一个完全独立的.dts文件,为了解决这个一些.dts文件有重复部分的问题,嵌入式Linux设备树目录把一个soc公用的部分或者多个设备共同的部分提炼为相应的.dtsi文件。这样的话,每个.dts就只有自己差异的部分,分只需要"include"公有的部相应的.dtsi文件, 就可以很好的管理整个设备树集群。
2,设备树定义
Device Tree是一种描述硬件的数据结构,由一系列被命名的节点node和属性property组成,而节点本身可包含子节点。所谓属性,其实就是成对出现的name和value。在Device Tree中,可描述的信息包括:CPU的数量和类别,内存基地址和大小,总线和桥,外设连接,中断控制器和中断使用情况,GPIO控制器和GPIO使用情况,Clock控制器和Clock使用情况。设备树基本上就是画一棵电路板上由CPU,总线设备组成的树,Bootloader会将这棵树传递给内核,然后内核可以识别这棵树,并根据它展