Hat jemand NuttX RTOS evaluiert?

Als ich heute das Linux User's Journal las, stolperte ich über einen kleinen Klappentext über NuttX RTOS. Ich habe mir ihre Website angesehen und war ziemlich beeindruckt von ihrem Funktionsumfang und ihrer Fähigkeit, sie in einen 8052 zu stecken! Ich finde es interessant, dass es POSIX unterstützt, an dem ich für das RTOS eines meiner Kunden mitgearbeitet habe. Dieses scheint etwas funktionsreicher zu sein als das hauseigene RTOS.

Hat noch jemand von NuttX gehört und es ausprobiert? Wenn ja, wie schneidet es im Vergleich zu anderen Echtzeitbetriebssystemen wie FreeRTOS ab ?

Ich fange gerade erst an, mit RTOS zu spielen, und als ich hier nachfragte, bekam ich großartige Ratschläge, aber ich hatte das Gefühl, dass die meisten Benutzer hier nicht wissen, was ein RTOS ist. Ich meine das nicht böse, ich denke nur, dass es sinnvoll sein könnte, dies auch in anderen Foren zu fragen, um Ihre Chance auf eine gute Antwort zu erhöhen.
Ich muss es trotzdem versuchen:-) Man weiß nie, wer hier lauert:-)
Ja, ich habe die Lint-Frage hier auch gestellt. Es schadet nie, auf einen Biss zu hoffen.
Startgeld! Interessiert mich der Vergleich zwischen RTOS's.
Warum gibt es eine Abstimmung zum Abschluss dieser Frage? Echtzeitbetriebssysteme werden ständig in der Elektronik und Robotik eingesetzt.
Eine weitere Rezension hier: fiberdownload.com/Download/26542/NuttX

Antworten (2)

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 Ports 8052 und M68HC12 besonders schlechte Wahlen sind, um NuttX zu charakterisieren, weil sie beide einige Probleme haben, und NuttX ist jetzt in Version 5.16 mit 63 Releases.

Ich habe das Interview in der Registerkarte "Verlag" hier ausgefüllt: Link ; Dort gibt es auch eine Rezension: Link .

Eine umfangreiche NuttX-Dokumentation ist hier verfügbar: link .

Die Probleme mit den hcs12- und 8051-Teilen sind wie folgt:

8051/80c52: Diese Architektur ist wirklich RTOS-feindlich. Es hat einen winzigen Hardware-Stack (128 Bytes beim 8051, 256 beim 80c52) an einem dedizierten Speicherplatz (Adresse 0). Um Aufgaben zu wechseln, müssen Sie den gesamten Stack der zu blockierenden Aufgabe von ihrer dedizierten Adresse an einen Speicherort kopieren und dann den gesamten Stack der zu startenden Aufgabe von ihrem Speicherort an den dedizierten Stack-Speicherort kopieren. JA!

Und da ist der Stapel so winzig. Es ist sehr, sehr einfach, den Stack zu überlaufen – besonders während der Unterbrechungsbehandlung.

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 bei jedem Interrupt kopieren, damit er nicht überläuft. Im Grunde habe ich an diesem Punkt das Interesse verloren, aber wenn jemand wirklich motiviert wäre, den 8051 zu verwenden, ist es machbar (wenn auch vielleicht nicht gut beraten).

Das Gute am 8051-Port war, dass es eine großartige Übung war, NuttX in einen sehr kleinen Speicherplatz zu bekommen. Die 8051-Portierung läuft in 32 KB RAM – dazu gehören RTOS, libc, Compiler-Bibliotheken, ein umfangreiches Testprogramm, .data/.bss und Heap. Und mit ein bisschen Erinnerung!

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


In Bezug auf den Vergleich mit anderen RTOSs habe ich wirklich keine guten, verbindlichen Antworten, da ich keine anderen RTOSs verwende. Aber hier ist mein naives Verständnis:

FreeRTOS hat unzählige Downloads und einen wirklich winzigen Platzbedarf von etwa 4 KB. Es ist das RTOS der Wahl für die wirklich kleinen MCUs. Ein FreeRTOS-Port wird von Siliziumanbietern mit fast jeder MCU gebündelt. Es ist also die Standard-RTOS-Wahl.

Es gibt Dutzende von Konkurrenten mit FreeRTOS da draußen. ChiBIOS fällt mir sofort ein. Dies sind alles winzige Planer unterschiedlicher Art.

Um einen echten Vergleich anstellen zu können, müssen wir zuerst definieren, was wir unter einem RTOS verstehen: Ist es nur ein Scheduler? Oder ist es ein integrierter Satz von Standardfunktionen des Betriebssystems – wie Scheduler, Dateisystem, Gerätetreiber, Speicherverwaltung, Netzwerk usw. Die meisten Betriebssysteme, beispielsweise Linux, sind vollständige Entwicklungsumgebungen, nicht nur Scheduler. NuttX ist ein vollwertiges Betriebssystem im gleichen Sinn wie Linux. Hier sind ein paar andere:

RTEMS : Ich habe mit diesem gearbeitet. Es ist schon ewig da und sollte sehr stabil sein. Es ist groß; Denke >100kb. Ich denke, es zielt etwas über den MCU-Markt ab.

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

Wie würde ich NuttX damit vergleichen: Nun, es ist viel kleiner. Der anfängliche Footprint beträgt etwa 20 KB. Eine voll funktionsfähige Konfiguration ist etwa 10-20 KB mehr. Ein weiterer Unterschied zu diesen Echtzeitbetriebssystemen besteht darin, dass NuttX sehr standardorientiert ist. Sie können sich NuttX als ein winziges Linux-Arbeitsgerät vorstellen. Der meiste Code, der unter Linux kompiliert und ausgeführt wird, wird auch auf NuttX ausgeführt (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.

Die Lizenzierung ist ein weiterer Unterschied, den Sie bei der Auswahl eines Open-Source-RTOS beachten sollten. Vor allem, wenn Sie vorhaben, das RTOS in einem kommerziellen Projekt einzusetzen. Die meisten Open-Source-RTOS haben eine modifizierte GPL-Lizenz. Die Lizenzänderung gibt normalerweise an, dass Sie Ihren proprietären Code, der mit dem GPL-RTOS verknüpft ist, nicht benötigen (aber Sie müssen die RTOS-Dateien mit Ihren Änderungen trotzdem freigeben).

NuttX (und wahrscheinlich auch andere) haben eine nicht restriktive, modifizierte BSD-Lizenz. Mit der BSD-Lizenz können Sie den Code im Wesentlichen so verwenden, als wäre er Ihr eigener, ohne andere Verpflichtungen als die Beibehaltung der Lizenz- und Urheberrechtsinformationen in den Dateien.

Nutt, möchten Sie, dass ich diese Informationen in Ihrer anderen Antwort bearbeite, es scheint, dass sie zusammenpassen.
Sicher, fühlen Sie sich frei. Das Geschwätz über 8051 und 80c52 und hc12 scheint hier auch aus dem Zusammenhang gerissen.
Ich wollte nur sicherstellen, dass Sie erkannt haben, dass Sie mehr bearbeiten können. Da Sie es wussten und es absichtlich getan haben, können wir es einfach hier belassen. Normalerweise können Sie einfach in einem anderen Abschnitt bearbeiten und Titel verwenden. Lassen Sie mich wissen, ob ich Ihnen helfen kann, wenn Sie Ihre Meinung ändern.