Unterstützt der Raspberry Pi 3 RTOS?

12

Ich bin neu in der RTOS-Welt. Ich plane, RTOS auf einem Raspberry Pi 3 (möglicherweise FreeRTOS) zu verwenden. Kann jemand vorschlagen, welches RTOS für die Anfänger gut wäre?

Ist es sogar möglich, RTOS auf einen Raspberry Pi 3 zu laden, da sie noch kein Datenblatt zum BCM2837 veröffentlicht haben?

Hilft das?

sandig
quelle
1
Es gibt sicherlich keinen Grund, warum Sie kein RTOS auf das RPi laden können. Das Anfordern einer Empfehlung für ein bestimmtes Betriebssystem ist jedoch nicht thematisch.
Chenmunka
1
Kann man wissen, warum Sie ein RTOS benötigen? Was wird es Ihnen geben, dass kein anderes Betriebssystem wird? Welche Echtzeitanforderungen müssen Sie erfüllen? Können Sie erklären, was ein RTOS für Anfänger gut macht?
Joan
1
@Chenmunka "Welches ist das beste RTOS für das RPi?" ("für Anfänger" oder sonstwie) wäre als meinungsbasiert off-topic. Das ist so ähnlich, aber der Titel lautet wörtlich "Unterstützt Himbeer-Pi-3 RTOS?" -> Wie Sie betonen, vermutlich ja. Wenn der Rest der Frage wirklich bedeutet, welche Echtzeitbetriebssysteme es gibt, dann ist es in Ordnung - was sicher die Art der tatsächlichen Antwort ist, denke ich. Es gibt mindestens eine ... Art.
Goldlöckchen
@joan Ich benötige RTOS für eingebettete Lösungen für Automobilanwendungen. Da ich neu bei RTOS bin, habe ich mich gefragt, ob es mit der verfügbaren Hardware (RPI-3) zu Hause gelehnt werden kann .
Sand
Schauen Sie sich den Ultibo Core an. Vielleicht ist es genau das, was Sie brauchen. ultibo.org
avra

Antworten:

7

Obwohl das ursprüngliche Projekt nur Raspberry Pi 1 unterstützt, habe ich diese Fork auf einem Raspberry Pi 2 erfolgreich kompiliert und es heißt, auch 3 zu unterstützen.

https://github.com/Forty-Tw0/RaspberryPi-FreeRTOS

jordi
quelle
Haben Sie es erfolgreich auf Raspberry Pi3 portiert?
LandonZeKepitelOfGreytBritn
Habe es gerade auf Pi2 gemacht. Sorry
Jordi
5

Bis jetzt habe ich das folgende RTOS ohne Erfolg für Himbeer-Pi 3 getestet, damit jemand keine Zeit verliert (ich verliere 3 Monate): FreeRTOS, Xenomai, RTEMS, BitThunder, ChibiOS / RT

Für RISC OS ist es kein RTOS.

Das Einzige, das ich bisher auf Himbeer-Pi 3 ausführen konnte, ist der Fuchsia OS-Kernel (Magenta), der sich jedoch in einem früheren Stadium befindet und niedrig dokumentiert ist

Eine andere Möglichkeit ist, das RTOS selbst zu erstellen. Ja, es ist möglich, ULTIBO CORE zu verwenden und die folgenden Tutorials zu befolgen: - http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal- programming-in-cpt1 / - https://www.youtube.com/watch?v=TCfpb8M0WeQ

Mahmoud Almostafa RABBAH
quelle
1
Ich habe Xenomai 2.6.5 erfolgreich auf einem Raspberry Pi 3 verwendet (mit dem Code von github.com/margro/linux ).
Steviethecat
4

ARM, die ISA-Familie, die von den Broadcom-Prozessoren für alle aktuellen Raspberry Pi-Modelle verwendet wird, basiert auf RISC , für das RISC OS geschrieben wurde. RISC OS Ich denke, dass ARM-Geräte in ihrem ersten Jahrzehnt die Hauptrolle spielten, als dasselbe britische Technologieunternehmen (Acorn) ursprünglich sowohl ARM- als auch RISC-Betriebssysteme entwarf. Tatsächlich stand ARM ursprünglich für "Acorn RISC machine" (Eichel-RISC-Maschine), und ein Teil des Grundes, warum der Himbeer-Pi so genannt wird, wie er ist, beruht auf einer Tradition in Großbritannien, Computersysteme nach Früchten oder Nüssen zu benennen.

RISC OS ist kein echtes Echtzeitbetriebssystem. Es verwendet jedoch kooperatives Multitasking. Dies bedeutet, dass Sie einen Prozess ausführen können, der sich freiwillig weigern kann, sich einem anderen Prozess hinzugeben. Welche Konsequenzen dies haben mag, weiß ich nicht, aber ich würde davon ausgehen, dass:

  • Sie können Dinge so konfigurieren, dass dies ohne Probleme möglich ist, es kann jedoch Einschränkungen hinsichtlich der Leistung des Betriebssystems geben (z. B. in Bezug auf das Netzwerk).

  • Kontextumschaltungen in den Kernelmodus werden nur aufgrund von Systemaufrufen durchgeführt, die vom Prozess ausgeführt werden, um seine Ziele zu erreichen.

Das kommt der Echtzeitfunktionalität ziemlich nahe, je nachdem, wie viel "Echtzeit" Sie benötigen. Ferner gibt es eine Bestätigung, dass RISC OS auf dem Pi 3 ausgeführt wird .

Goldlöckchen
quelle
danke für die Antwort. Es scheint wirklich nicht notwendig zu sein, ein anderes Betriebssystem für rpi-3 zu verwenden, da das vorhandene Betriebssystem ebenfalls eine Echtzeit ist. Meine Anwendung zielt auf die eingebettete Hardware ab, die aufgrund von Speicherbeschränkungen kein Linux-basiertes Betriebssystem wie Raspbian haben kann. Der Punkt ist, kann ich andere RTOS mit geringem Speicherbedarf auf rpi-3 laden, um mich an die RTOS-Welt zu gewöhnen? Gibt es Einschränkungen für RPI-3?
Sand
1
Es tut mir leid: Um es zu erklären, dies ist kein Diskussionsforum . Bitte machen Sie die Tour noch einmal und beachten Sie den Teil "Antworten auf praktische, detaillierte Fragen" . Es hört sich so an, als hätten Sie Details aus Ihrer Frage herausgelassen und andere Leute dazu aufgefordert, ihre Zeit mit Antworten zu verschwenden, die nicht Ihren Vorstellungen entsprechen, sodass Sie sie nachträglich eingrenzen können. So funktioniert SE nicht. Wenn Sie eine andere Frage haben, stellen Sie eine andere Frage. Bearbeiten Sie dieses nicht, um die ursprüngliche Bedeutung zu ändern, sonst schließe ich es. Vielen Dank.
Goldlöckchen
1
Ich gebe Ihnen jedoch einen Rat: Wenn Sie ein Betriebssystem suchen, das auf Systemen mit Sub-MB-Speicher ausgeführt werden kann, sollten Sie zuerst herausfinden, welche Optionen Sie haben. Nur ein Echtzeit-Betriebssystem zufällig "zum Üben" auszuwählen, kann dazu führen, dass Sie absolut nichts über das lernen, was Sie letztendlich wirklich verwenden müssen. Verschwenden Sie also keine Zeit. Finden Sie heraus, was Sie verwenden müssen, und fragen Sie, ob Sie es auf dem Pi usw. verwenden können.
Goldlöckchen
0

Da die Definition eines RTOS von der Anwendung abhängt, normalerweise von einem Computer, der vorgibt, viel einfacher zu sein, ist RISC OS ein RTOS für mittelkomplexe Anwendungen und nicht unbedingt für hochkomplexe Anwendungen, obwohl es sich um ein hochkomplexes RTOS handelt klingt wie ein Widerspruch. Das Beispiel von Mahmoud Almostafa RABBAH bezieht sich auf kein Betriebssystem und das Ausführen eines Single-Tasking-Programms direkt vom Bootloader, das auch kein RTOS ist.

Der einzig vernünftige Weg, dies zu verstehen, besteht darin, die RTOS-Definition in drei Ebenen zu unterteilen:

  • Geringe Komplexität wäre so etwas wie eine Waschmaschine oder ein Datenlogger, und wahrscheinlich sind Sie mit einfacherer Hardware, z. B. Arduino oder vielleicht einer einfacheren MCU oder sogar nur sequentieller Logik, in erster Linie besser dran. Es wird weniger Strom verbrauchen und es gibt viel weniger Grund zur Sorge: Machen Sie Dinge niemals komplizierter, als sie sein müssen.

  • Hohe Komplexität wäre so etwas wie ein vollständiges Multitasking-System, was ein RTOS nicht ist. Wenn Sie möchten, ist es wahrscheinlich besser, Ihre GUI auf einem separaten Gerät auszuführen. Hohe Komplexität kann auch darin bestehen, Prozesse zu überwachen, die andere Prozesse aufrufen, und einige müssen priorisiert werden. Auch hier ist eine parallele Verarbeitung besser geeignet, da sonst die Möglichkeit einer Echtzeitreaktion nicht gegeben ist.

  • Bei mittlerer Komplexität benötigen Sie die Schnittstellen, die ein normales Betriebssystem bieten kann, z. B. USB, und möglicherweise einen kleinen Bildschirmausgang. Sie möchten jedoch einen Datenstrom verarbeiten und nicht durch irgendetwas unterbrochen werden. Dies klingt wie das Niveau einer Automobilanwendung.

    Dazu können Sie etwas ohne Betriebssystem kompilieren und es mit einem Hostcomputer entwickeln, oder Sie können die Version von RISC OS verwenden, die direkt in BASIC bootet und auf dem Zielcomputer entwickelt, was normalerweise einfacher ist.

    Dadurch wird eine einzelne Task ausgeführt, die schnell genug sein kann, um eine Reihe von Ereignissen abzufragen, ohne von anderen Dingen unterbrochen zu werden. Hardware-Interrupts würden weiterhin ausgeführt, es sei denn, sie sind deaktiviert (relativ einfach), und diese sind erforderlich, damit das Display / USB usw. funktioniert. Andere Hardware-Interrupts führen Timer und E / A aus, die Sie möglicherweise nicht verwenden.

Ein weiterer Vorteil von RISC OS in RTOS-Anwendungen besteht darin, dass Sie nur die Module verwenden können, die Sie benötigen. Dies ist in herkömmlichen GUI-Anwendungen nicht sinnvoll und wurde beispielsweise von STD / AdvantageSix [1] verwendet, obwohl sie den Begriff "eingebettete Systeme" verwenden. anstelle von "RTOS". Die Vorteile sind ein vereinfachtes Design, ein geringerer Stromverbrauch, eine geringere Speichernutzung und schnellere Startzeiten (einige E / A-Geräteschnittstellen erfordern selbst einen Miniboot, und das Betriebssystem muss daran teilnehmen, obwohl die Zeitskalen in der Regel zu kurz sind, um dies zu bemerken ).

Ich hoffe, dass beides einige Lücken in den obigen Informationen ausfüllt und die Lücken in meinem eigenen Wissen deutlich macht.

[1] http://www.advantagesix.co.uk/about_us.html (Andere Beispiele aus dem Speicher sind online nicht mehr verfügbar.)

Robin Hodson
quelle