Linux-Treiber auf RTOS portieren

Jeder geht wahrscheinlich in die andere Richtung und stellt seine Systeme usw. auf Linux um. Ich habe folgendes Problem. Ich verwende gerne einen WiFi-Chipsatz zusammen mit seinem Linux-Treiber auf meinem RTOS (FreeRtos). Wenn ich das auf herkömmliche Weise mache, brauche ich 3 Monate, um es zu portieren. (Jetzt arbeite ich für ein kleines Unternehmen, daher erwarte ich bei meinen Volumina keine Unterstützung vom Chipsatzhersteller. Ich habe jedoch ein sehr strenges Kostenziel, sodass ich diese wirklich teuren, aber einfach zu verwendenden Module nicht verwenden kann. Ich ziele auf sub 5$ WLAN-Modul hier)

Gibt es einen einfachen Weg oder muss ich wirklich tief in den Treiber hineingehen und ihn langsam portieren. Ich kenne Linux nicht, aber ich kenne RTOS-Konzepte relativ gut. Ich suche nach einer Art Wrapper, der Linux-Systemaufrufe in konventionellere RTOs übersetzt.

Ich weiß, es ist ein langer Weg, aber ich musste es versuchen.

Und schlagen Sie nicht uCLinux als Betriebssystem vor, ich war auf diesem Weg, es scheint der beste Weg zu sein, aber die Codegröße ist unerschwinglich, um mit den On-Chip-Ressourcen meiner CPU zu laufen.

Bonusfrage: Irgendwelche WiFi-Experten da draußen, die einen b/g-Chipsatz mit RTOS-Treibern empfehlen könnten, die leicht verfügbar sind. Ich habe mir CSR, Realtek und Nanoradio angesehen, sie bieten alle Linux-Treiber, aber keine RTOS-Unterstützung. Atheros hatte nicht einmal Lust, mit mir zu sprechen, ich denke, die Wirkung von Qualcomm.

Ich bin kein Anwalt, aber seien Sie vorsichtig, wenn Sie dies tun. Es sieht so aus, als hätten die beiden Projekte inkompatible Lizenzen. In diesem Fall könnten Sie die portierten Treiber nicht verteilen.
@jeremy-kerr guter Punkt.. Ich müsste darüber nachdenken, aber ich bin im Moment mehr auf die technische Seite des Zeugs ausgerichtet..

Antworten (1)

Das manuelle Portieren des Treibers ist die einzige Möglichkeit, dies zu tun, wenn Sie nicht bereit sind, den Treiber von Grund auf neu zu schreiben. @jeremy-kerr hat Recht, Sie haben Lizenzprobleme, auf die Sie achten müssen, aber im Wesentlichen bedeutet dies, wenn der Treiber GPL ist, dass Ihr portierter Treiber auch GPL ist. Sie müssen nicht Ihren gesamten RTOS-Quellcode öffnen.

Drei Monate sind wahrscheinlich eine konservative Schätzung für den Portierungsaufwand; wenn Sie die verwendeten APIs identifizieren können (Netzwerk, Interrupt, Timer, Warten/Sperren, I/O, Rückruf, Dateioperation usw.) und eine grobe Zuordnung zwischen der verwendeten Linux-API und dem, was auf Ihrem verfügbar ist, erstellen können RTOS wird der Prozess VIEL schneller ablaufen, zumal Sie dann damit beginnen können, den verwendeten Linux-API-Aufruf herauszulösen und ihn in die API und die Datenstrukturen zu "übersetzen", die auf Ihrem RTOS verwendet werden.

Es wird keine einfache Aufgabe sein, aber es ist sicherlich machbar, und wenn der Linux-Treiber gut geschrieben ist, werden Sie eine sehr gute Vorstellung davon haben, was jeder Teil tut und warum, was die Portierung immer einfacher macht. Viel Glück!

Vielen Dank.. Ausgezeichnete Antwort.. Ich mache in der Zwischenzeit eine Menge anderer Sachen, daher die 3 Monate.. Außerdem weiß ich noch nichts über Linux.