设备树程序与以下几项对应:
设备树文件(DTS):
设备树文件是一个描述系统硬件的数据结构,以树形结构组织设备节点,并提供设备节点的属性信息,如设备地址、中断号、寄存器地址等。DTS文件会被编译成二进制设备树blob(.dtb)文件。
设备树二进制文件(.dtb):
设备树二进制文件是设备树文件编译后的结果,包含了设备树中节点信息的二进制表示。这个文件会被内核用来自动加载设备驱动程序。
设备树节点(device_node):
设备树中的每个节点对应一个硬件设备,节点中包含了设备的属性信息。内核通过解析设备树二进制文件得到这些节点,并将它们转换成相应的设备资源。
驱动程序:
驱动程序与设备树中的compatible属性进行匹配,匹配成功后,驱动程序中的相应节点会映射到设备树节点上,并通过设备树节点来解析设备信息。
平台设备(platform_device):
平台设备是设备树中的一种设备资源,它包含了设备的硬件信息,如设备地址、中断号等。平台设备资源通过设备树文件自动加载,并与相应的平台驱动程序进行匹配。
平台驱动程序(platform_driver):
平台驱动程序是用于匹配平台设备的驱动程序。它会在平台设备与驱动程序匹配成功后,通过调用probe函数来分配、设置和注册file_operations结构体,从而完成设备的初始化和配置。
总结来说,设备树程序与设备树文件(DTS)、设备树二进制文件(.dtb)、设备树节点(device_node)、驱动程序、平台设备(platform_device)和平台驱动程序(platform_driver)等元素一一对应,共同实现了Linux内核中设备驱动程序的自动加载和初始化。