Heim > Artikel > Betrieb und Instandhaltung > Was bedeutet Plattform unter Linux?
Unter Linux ist Plattform ein virtueller Bus, der realen Bussen wie „spi/sdio/usb/pcie“ entspricht. Die durch Plattform beschriebenen Ressourcen haben eines gemeinsam: Sie befinden sich in der CPU Durch direkten Zugriff auf die Adresse am Bus wird dem Plattformgerät ein Name und eine Reihe von Ressourcen wie Adressen und Interrupt-Anforderungsnummern zugewiesen.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Plattform ist ein virtueller Bus, der dem echten SPI/Sdio/USB/PCIE-Bus entspricht.
Eine wichtige Funktion des logischen Busses besteht darin, das Gerät zu erkennen und zu finden geeigneten Fahrer, um das Gerät zu bedienen.
Der Plattformbus ist ein virtueller logischer Bus, der die logische Verbindungsfunktion erfüllt. Um Geräte einheitlich zu verwalten, kann die Plattform den Plattformbus verwenden, um einen Gerätetyp einheitlich zu verwalten, der physisch keinen Bus hat.
Gemeinsame Busse wie USB, SPI, UART, PCI, I2S und andere Busse sind physikalisch echte Busse. Das Linux-System hat eine Methode zur einheitlichen Verwaltung solcher Busse entwickelt, nämlich Bus. Gleichzeitig ist der Plattformbus auch für Geräte konzipiert, die keinen physischen Bus haben. Daher haben die Linux-Kernel-Designer den Plattformbus entworfen, mit anderen Worten, der Plattformbus ist für Geräte innerhalb des SoC konzipiert, die keinen haben ein physischer Bus Sie gehören alle zur Buskategorie.
Der Vorteil davon besteht darin, dass sich der Autor des Gerätecodes (Gerätecodes) nur um die spezifischen Hardwareteile kümmert und die gemeinsamen Teile des Geräts (die stabilen Teile) vom Kernel-Designer vervollständigt werden, was die Schwierigkeit des Treibers verringert Schreiben.
Über den Plattformbus können Geräteattribute (auch Daten genannt) und Treiber getrennt werden, sodass derselbe Treiber zur Unterstützung verschiedener Geräte mit derselben funktionalen Kernhardware verwendet werden kann. Dadurch wird das Phänomen vermieden, dass ein Gerät einen Treiber benötigt, und sich wiederholende Arbeiten werden reduziert.
Erweiterte Kenntnisse
Plattformbusbezogene Definitionen
Plattformplattformbusbezogene Objekte werden in der Datei drivers/base/platform.c definiert. Diese Datei implementiert das Plattformbusobjekt und die Objektoperationsmethoden.
Zwei wichtige Datenstrukturen
1. platform_driver
Dies ist ein Strukturobjekt, das in einen device_driver eingebettet ist, der die Methode zum Betrieb des Objekts definiert.
2. platform_device
Es handelt sich um ein eingebettetes Gerätestrukturobjekt, das die Attribute der Gerätebeschreibungsressource definiert.
Die spezifische Objektdefinition lautet wie folgt:
1. Plattform_Treiber-Objektdefinition
struct platform_driver { int (*probe)(struct platform_device *); //探测函数,安装设备,初始化设备,并且判断是否能成功(初始化成功,通讯成功等等) int (*remove)(struct platform_device *); //从内核中删除这个设备 void (*shutdown)(struct platform_device *); // 关闭设备 int (*suspend)(struct platform_device *, pm_message_t state); //挂起 int (*resume)(struct platform_device *); //唤醒 struct device_driver driver; //驱动的通用属性 const struct platform_device_id *id_table; //设备ID表 };
Plattform_Geräte-Objektpaardefinition:
struct platform_device { const char* name; //平台总线中设备的名字,在平台总线下有多个设备,每个设备都有自己的名称 intid; //设备的排序 struct devicedev; //所有设备通用的属性 u32num_resources; //设备资源,如IO等一些外设等的个数 struct resource* resource; //设备资源的首地址,和上面的个数num_resources一起构成一个数组来表示这个资源 const struct platform_device_id*id_entry; //设备ID表,表示同一种类型的几个设备的ID号,数组表示。 struct pdev_archdataarchdata; /* arch specific additions *///用户自定义数据,扩展数据 };
Funktion zum Registrieren des Plattformbustreibers:
int platform_driver_register(struct platform_driver *drv)
Funktion zum Registrieren des Plattformbusgeräts:
int platform_device_register(struct platform_device *pdev)
Empfohlenes Lernen : Linux-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWas bedeutet Plattform unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!