Hat jemand NuttX RTOS evaluiert?

15

Als ich heute das Linux User's Journal las, stieß ich auf ein kleines Problem mit NuttX RTOS. Ich habe die Website überprüft und war ziemlich beeindruckt von den Funktionen und der Fähigkeit, sie in eine 8052 zu integrieren! Ich finde es interessant, dass es POSIX unterstützt. Daran habe ich für eines meiner Kunden im Hause RTOS mitgearbeitet. Dieser scheint ein bisschen mehr Funktionen zu bieten als das hauseigene RTOS.

Hat noch jemand von NuttX gehört und es ausprobiert? Wenn ja, wie verhält es sich zu anderen RTOSs wie FreeRTOS ?

Jay Atkinson
quelle
1
Ich fange gerade erst an, mit RTOS zu spielen, und als ich hier gefragt habe, habe ich gute Ratschläge bekommen, aber ich hatte das Gefühl, dass die meisten Benutzer hier nicht wissen, was ein RTOS ist. Ich meine das nicht schlecht, ich denke nur, es könnte sinnvoll sein, dies in anderen Foren nachzufragen, um auch Ihre Chance auf eine gute Antwort zu erhöhen.
Kortuk
Ich muss es trotzdem versuchen :-) Man weiß nie, wer hier lauert :-)
Jay Atkinson
Ja, ich habe die Frage auch hier gestellt. Es tut nie weh, auf einen Bissen zu hoffen.
Kortuk
Startprämie! Bin am Vergleich zwischen RTOS interessiert.
Tyblu
7
Warum gibt es eine Abstimmung zum Abschluss dieser Frage? RTOS werden ständig in der Elektronik und in der Robotik eingesetzt.
Kellenjb

Antworten:

17

Zu dieser Frage wurde hier diskutiert: link

Auszüge: Der Artikel im Linux Journal, auf den verwiesen wird, ist hier: link

Ich denke, dass die 8052- und die M68HC12-Ports besonders schlechte Optionen sind, um NuttX zu charakterisieren, da beide einige Probleme haben und NuttX jetzt Version 5.16 mit 63 Releases hat.

Ich habe das Interview auf der Registerkarte "Publisher" hier ausgefüllt: Link ; Auch dort gibt es eine Rezension: Link .

Eine ausführliche NuttX-Dokumentation finden Sie hier: link .

Die Probleme mit den Teilen hcs12 und 8051 lauten wie folgt:

8051 / 80c52: Diese Architektur ist wirklich RTOS-feindlich. Es verfügt über einen winzigen Hardwarestapel (128 Bytes beim 8051, 256 beim 80c52) an einem dedizierten Speicherort (Adresse 0). Um Aufgaben zu wechseln, müssen Sie den gesamten Stapel der zu blockierenden Aufgabe von der zugewiesenen Adresse an einen Speicherort kopieren und anschließend den gesamten Stapel der zu startenden Aufgabe von ihrem Speicherort an den zugewiesenen Stapelspeicherort kopieren. YECH!

Und da ist der Stapel so klein. Es ist sehr, sehr einfach, den Stapel zu überlaufen - insbesondere während der Interrupt-Behandlung.

Der NuttX 8051-Port ist vollständig und funktionsfähig (zumindest das letzte Mal, als ich ihn verwendet habe). Aber um es nützlich zu machen, müssten Sie wahrscheinlich auch den gesamten Stapel auf jeden Interrupt kopieren, damit er nicht überläuft. Grundsätzlich habe ich zu diesem Zeitpunkt das Interesse verloren, aber wenn jemand wirklich motiviert war, den 8051 zu verwenden, ist dies machbar (wenn vielleicht nicht gut beraten).

Was an dem 8051-Port gut war, ist, dass es eine großartige Übung war, NuttX in einen sehr kleinen Speicherbereich zu bringen. Der 8051-Port wird mit 32 KB RAM ausgeführt - einschließlich RTOS, libc, Compiler-Bibliotheken, einem umfangreichen Testprogramm, .data / .bss und und heap. Und mit ein bisschen Gedächtnis!

hcs12: Dies ist ein Projekt, an dem ich in meiner Freizeit arbeite, wenn ich nichts anderes mache. Es ist einfach noch nicht fertig und noch nicht bereit für die Hauptsendezeit.


Im Vergleich zu anderen RTOSs habe ich wirklich keine guten, aussagekräftigen Antworten, weil ich keine anderen RTOSs verwende. Aber hier ist mein naives Verständnis:

FreeRTOS hat Unmengen an Downloads und eine wirklich winzige Stellfläche von etwa 4 KB. Es ist das RTOS der Wahl für die wirklich kleinen MCUs. Ein FreeRTOS-Port wird von Siliziumanbietern mit nahezu jeder MCU gebündelt. Es ist also die Standard-RTOS-Option.

Es gibt Dutzende von Wettbewerbern mit FreeRTOS. ChiBIOS fällt mir sofort ein. Dies sind alles winzige Scheduler verschiedener Typen.

Um einen echten Vergleich anzustellen, müssen wir zunächst definieren, was wir unter einem RTOS verstehen: Ist es nur ein Scheduler? Oder handelt es sich um eine integrierte Reihe von Standardfunktionen des Betriebssystems - wie Scheduler, Dateisystem, Gerätetreiber, Speicherverwaltung, Netzwerkbetrieb usw. Die meisten Betriebssysteme, z. B. Linux, sind vollständige Entwicklungsumgebungen, nicht nur Scheduler. NuttX ist ein vollwertiges Betriebssystem, genauso wie Linux. Hier sind ein paar andere:

RTEMS : Ich habe mit diesem gearbeitet. Es ist schon immer da und sollte sehr stabil sein. Es ist groß; denke> 100kb. Ich denke, es zielt ein wenig über dem MCU-Markt.

uCOS : Ich habe es nie benutzt, aber das ist das RTOS unter verschiedenen populären Bootloadern, nicht wahr ? Mein Eindruck ist, dass es RTEMS ähnlich ist, aber ich weiß nicht wirklich, wovon ich spreche.

Wie würde ich NuttX mit denen vergleichen: Nun, es ist viel kleiner. Die Startfläche beträgt ca. 20 KB. Eine voll funktionsfähige Konfiguration ist etwa 10-20 KB mehr. Ein weiterer Unterschied zu diesen RTOS ist, dass NuttX sehr standardorientiert ist. Sie können sich NuttX als ein winziges Linux vorstellen. Der meiste Code, der unter Linux kompiliert und ausgeführt wird, läuft auch unter NuttX (einige Systemcodes wie Netzwerkcode oder Daemons müssen möglicherweise angepasst werden).

Ich denke, RTEMS konzentriert sich mehr auf Mikroprozessoren. NuttX konzentriert sich mehr auf Mikrocontroller.

Patacongo
quelle
4

Die Lizenzierung ist ein weiterer Unterschied, den Sie bei der Auswahl eines Open Source-RTOS berücksichtigen sollten. Vor allem, wenn Sie das RTOS in einem kommerziellen Projekt einsetzen möchten. Die meisten Open Source-RTOSs haben eine modifizierte GPL-Lizenz. Die Lizenzänderung gibt normalerweise an, dass Sie nicht an Ihrem proprietären Code, der mit dem GPL-RTOS verknüpft ist, gebunden sind (Sie müssen jedoch die RTOS-Dateien mit Ihren Änderungen freigeben).

NuttX (und wahrscheinlich auch andere) haben eine nicht einschränkende, modifizierte BSD-Lizenz. Mit der BSD-Lizenz können Sie den Code im Wesentlichen so verwenden, als wäre er Ihr Eigentum. Sie müssen lediglich die Lizenz- und Copyright-Informationen in den Dateien aufbewahren.

Patacongo
quelle
Nutt, möchten Sie, dass ich diese Informationen in Ihre andere Antwort bearbeite? Anscheinend gehören sie zusammen.
Kortuk
Klar, fühl dich frei. Schimpfen über 8051 und 80c52 und hc12 scheint auch hier aus dem Zusammenhang geraten.
Patacongo
Ich habe nur dafür gesorgt, dass Sie realisiert haben, dass Sie mehr bearbeiten können. Da Sie es gewusst und absichtlich getan haben, können wir es einfach hier lassen. Normalerweise können Sie nur in einem anderen Abschnitt bearbeiten und Titel verwenden. Lassen Sie mich wissen, ob ich Ihnen helfen kann, wenn Sie Ihre Meinung ändern.
Kortuk