阿里巴巴|简述Linux设备树

阿里巴巴|简述Linux设备树

文章图片


设备树这个概念并不是一开始就具有的 , 它的出现是Linus Torvalds在2011年3月 , 对于kernel/arch/arm/plat-xxx和kernel/arch/arm/mach-xxx含有大量的描述板级细节的代码 , 针对这种现象提出了设备树(Device tree)的概念 。 设备树其实就是描述硬件的数据结构 , 可以将很多硬件信息直接传递给Linux , 省去了内核大量的冗余代码 。

设备树含有的节点和属性描述的信息主要有时钟、中断、GPIO控制器 , 外设连接情况 , 总线 , 内存基地址等等 。 Linux设备树主要由DTS、DTC、DTB等几个文件格式组成 。 DTS文件是一个以ASCII文本格式为主要描述语言的设备树 。 一个.dts对应一个ARM设备 , 类似于C语言的.C文件 。 由于设备较多此时共用的部分提取成为.dtsi , 类似于C语言的头文件 , 他们可以相互包含 。 DTC说白了就是将.dts编译为.dtb的工具 。 类似于C语言的编译器VC++ 。 DTB是经过DTC编译后的二进制格式的设备树描述 , 类似于C语言编译生成的HEX文件 。

【阿里巴巴|简述Linux设备树】总而言之 , 设备树的出现大大减少了Linux的代码 , 去其糟粕 , 取其精华 , 让内核相关代码更加简洁易懂 。 这样更像人类的发展历程波浪式前进 , 螺旋式上升 。


    推荐阅读