Ich habe einen Wi-Fi-Treiber (eine .ko-Datei) für Embedded-Linux-System und es gibt zwei identische Wi-Fi-Geräte auf meiner Platine. Nach dem Einspielen der .ko-Datei in den Kernel kann das System diese beiden Wi-Fi-Geräte steuern.Globale Variablen in Linux .ko für mehrere Geräte
Meine Frage ist: Wenn der Quellcode des Treibers globale Variablen (und statische Variablen) enthält, teilen diese beiden Geräte den gleichen Satz von Variablen? Oder gibt es für jedes Gerät zwei Treiberinstanzen?
Danke!
Ich habe letzte Woche an meinem Board getestet. Der Treiber wird nur einmal initialisiert (module_init) und zweimal geprüft, da zwei Geräte an der Platine angeschlossen sind. Globale Variablen (statische Variablen am Anfang der .c-Datei) werden von zwei Geräten gemeinsam genutzt. Ich kopiere den Code weiter in ein anderes Verzeichnis und ändere den Treibernamen (sowie den Namen der Ressourcen im Code) und kompiliere. Linux kann zwei .ko-Treiber laden, und jeder Treiber wird einmal gestartet. Der erste integrierte Treiber wird zweimal geprüft, während der zweite nicht geprüft wird. –