Czy Raspberry Pi 3 obsługuje RTOS?

12

Jestem nowy w świecie RTOS. Planuję używać RTOS na Raspberry Pi 3 (może być FreeRTOS). Czy ktoś może zasugerować, który RTOS byłby dobry dla początkujących?

Skoro jeszcze nie wydali arkusza danych na BCM2837, czy w ogóle możliwe jest załadowanie RTOS na Raspberry Pi 3?

Czy to pomoże?

piaszczysty
źródło
1
Z pewnością nie ma powodu, dla którego nie można załadować RTOS do RPi. Jednak prośba o rekomendację konkretnego systemu operacyjnego jest nie na temat.
Chenmunka
1
Czy można wiedzieć, dlaczego potrzebujesz RTOS? Co da ci to, że żaden inny system operacyjny nie będzie? Jakie wymagania w czasie rzeczywistym musisz spełnić? Czy możesz wyjaśnić, co sprawia, że ​​RTOS jest dobry dla początkujących?
joan
1
@Chenmunka „Jaki jest najlepszy RTOS dla RPi?” („dla początkujących” lub w inny sposób) byłoby nie na temat jako oparte na opiniach. To trochę tak, ale tytuł brzmi dosłownie: „Czy Raspberry Pi 3 obsługuje RTOS?” -> Jak zauważyłeś, prawdopodobnie tak. Jeśli reszta pytania naprawdę ma oznaczać, jakie są RTOS, to jest w porządku - co z pewnością byłoby naturą jakiejkolwiek rzeczywistej odpowiedzi, tak sądzę. Jest co najmniej jeden ... rodzaj.
Złotowłosa
@joan Potrzebuję RTOS do wbudowanych rozwiązań dla aplikacji motoryzacyjnych. Ponieważ jestem nowy w RTOS, zastanawiałem się, czy można go oprzeć na dostępnym sprzęcie (rpi-3) w domu .
piaszczysty
Spójrz na rdzeń Ultibo. To może być właśnie to, czego potrzebujesz. ultibo.org
avra

Odpowiedzi:

7

Chociaż oryginalny projekt obsługuje tylko Raspberry Pi 1, z powodzeniem skompilowałem ten widelec na Raspberry Pi 2 i mówi się, że obsługuje również 3.

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

Jordi
źródło
Czy udało Ci się przenieść go na Raspberry Pi3?
LandonZeKepitelOfGreytBritn
Nie. Właśnie to zrobiłem na Pi2. Przepraszamy
Jordania
5

Do tej pory testowałem następujący RTOS bez powodzenia dla Raspberry Pi 3, który pomoże komuś nie stracić czasu (tracę 3 miesiące): FreeRTOS, Xenomai, RTEMS, BitThunder, ChibiOS / RT

W przypadku RISC OS nie jest to RTOS.

Jedynym, na którym do tej pory mogłem uruchomić Raspberry Pi 3, jest jądro Fuchsia OS (Magenta), ale jest ono na wcześniejszym etapie i jest słabo udokumentowane

Innym sposobem jest samodzielne zbudowanie RTOS, tak, jest to możliwe, przy użyciu ULTIBO CORE i następujących samouczków: - http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal- programowanie w cpt1 / - https://www.youtube.com/watch?v=TCfpb8M0WeQ

Mahmoud Almostafa RABBAH
źródło
1
Z powodzeniem użyłem Xenomai 2.6.5 na Raspberry Pi 3 (używając kodu z github.com/margro/linux ).
steviethecat
4

ARM, rodzina ISA używana przez procesory Broadcom we wszystkich obecnych modelach Raspberry Pi, oparta jest na RISC , dla którego napisano RISC OS . RISC OS Myślę, że przez pierwszą dekadę dominował na urządzeniach ARM, ponieważ ta sama brytyjska firma technologiczna (Acorn) pierwotnie zaprojektowała zarówno ARM, jak i RISC OS. W rzeczywistości ARM początkowo oznaczał „maszynę Acorn RISC”, i częściowo dlatego, że Raspberry Pi nazywa się tak, jak to jest, z powodu tradycji w Wielkiej Brytanii nazywania systemów komputerowych po owocach lub orzechach.

RISC OS nie jest prawdziwym systemem operacyjnym czasu rzeczywistego, jednak korzysta z wielozadaniowości kooperacyjnej , co oznacza, że ​​możesz uruchomić proces, który może dobrowolnie odmówić poddania się innemu procesowi. Jakie to może mieć konsekwencje, nie wiem, ale zakładam, że:

  • Możesz skonfigurować rzeczy tak, aby na to pozwalały bez problemów, ale może to wiązać się z ograniczeniami w zakresie osiągnięć systemu operacyjnego (np. W odniesieniu do sieci).

  • Kontekst przełącza się w tryb jądra tylko z powodu wywołań systemowych wykonywanych przez proces w celu osiągnięcia jego celów.

Jest to bardzo zbliżone do funkcjonalności w czasie rzeczywistym, w zależności od tego, jak „w czasie rzeczywistym” trzeba się dostać. Co więcej, istnieje pewne potwierdzenie, że RISC OS działa na Pi 3 .

Złotowłosa
źródło
Dziękuję za odpowiedź. Wygląda na to, że naprawdę nie jest konieczne używanie innego systemu operacyjnego dla rpi-3, ponieważ system operacyjny rezydujący jest również w czasie rzeczywistym. Moja aplikacja jest skierowana na wbudowany sprzęt, który nie może mieć systemu operacyjnego opartego na systemie Linux, takim jak raspbian, z powodu ograniczenia pamięci. Chodzi o to, czy mogę załadować inny RTOS o małej powierzchni pamięci na rpi-3, aby przyzwyczaić się do świata RTOS? Czy są jakieś ograniczenia dotyczące rpi-3?
piaszczysty
1
Przepraszam: Aby wyjaśnić, to nie jest forum dyskusyjne . Zapoznaj się ponownie z prezentacją i zwróć uwagę na część „Uzyskaj odpowiedzi na praktyczne, szczegółowe pytania” . Wygląda na to, że pominąłeś szczegóły pytania, zapraszając innych ludzi do marnowania czasu, udzielając odpowiedzi, które nie są tym, czego szukałeś, abyś mógł zawęzić je w późniejszym stylu dyskusji. Nie tak działa SE. Jeśli masz inne pytanie, zadaj inne pytanie. Nie edytuj tego, aby zmienić oryginalne znaczenie, w przeciwnym razie go zamknę. Dziękuję Ci.
Złotowłosa
1
Dam ci jednak radę: jeśli szukasz systemu operacyjnego, który będzie działał w systemach z pamięcią sub MB, powinieneś najpierw dowiedzieć się, jakie masz opcje. Po prostu wybranie losowego systemu operacyjnego w czasie rzeczywistym „do ćwiczeń” może ostatecznie nie nauczyć cię absolutnie niczego o tym, którego naprawdę musisz używać. Więc nie marnuj czasu. Dowiedz się, czego potrzebujesz, a następnie zapytaj, czy możesz użyć go na pi itp.
goldilocks
0

Ponieważ definicja RTOS różni się w zależności od aplikacji, zwykle komputer udaje, że jest czymś znacznie prostszym, RISC OS jest RTOS dla średnio-złożonych aplikacji i niekoniecznie dla bardzo złożonych, chociaż bardzo skomplikowany RTOS brzmi jak sprzeczność w kategoriach. Przykład Mahmouda Almostafa RABBAH dotyczy braku systemu operacyjnego i uruchamiania programu jednozadaniowego bezpośrednio z modułu ładującego, który również nie jest systemem RTOS.

Jedynym rozsądnym sposobem uzasadnienia tego jest podzielenie definicji RTOS na trzy poziomy:

  • Niska złożoność byłaby czymś w rodzaju pralki lub rejestratora danych, i prawdopodobnie lepiej jest z prostszym sprzętem, np. Arduino lub może z prostszym MCU, a nawet po prostu logiką sekwencyjną. Zużyje mniej energii i nie będzie się o co martwić: nigdy nie komplikuj rzeczy bardziej niż muszą.

  • Wysoka złożoność byłaby czymś w rodzaju pełnego systemu wielozadaniowego, czym nie jest RTOS. Prawdopodobnie lepiej byłoby uruchomić GUI na osobnym urządzeniu, jeśli chcesz. Wysoką złożonością mogą być również monitorowanie procesów, które wywołują inne procesy, a niektóre muszą mieć priorytet, ale znowu lepiej jest, jeśli istnieje tam jakieś przetwarzanie równoległe lub nie ma możliwości reagowania w czasie rzeczywistym.

  • Średnio złożona byłaby sytuacja, w której potrzebujesz interfejsów, które może zapewnić normalny system operacyjny, np. USB i być może mały wyświetlacz, ale chcesz przetwarzać strumień danych i niczego nie przerywać. To brzmi jak poziom aplikacji motoryzacyjnej.

    W tym celu można skompilować coś bez systemu operacyjnego, korzystając z komputera hosta, lub opracować wersję RISC OS, która uruchamia się bezpośrednio w języku BASIC i rozwija się na komputerze docelowym, co zwykle jest łatwiejsze.

    Spowoduje to uruchomienie jednego zadania, które może być wystarczająco szybkie, aby sondować szereg zdarzeń, bez przeszkadzania przez inne rzeczy. Przerwania sprzętowe nadal działałyby, chyba że zostaną wyłączone (dość łatwe do zrobienia), a te są niezbędne, aby wyświetlacz / USB itp. Działały. Inne urządzenia przerywają liczniki czasu pracy i operacje we / wy, których możesz nie używać.

Kolejną zaletą RISC OS w aplikacjach RTOS jest to, że możesz używać tylko wymaganych modułów, co nie ma sensu w tradycyjnych aplikacjach GUI i było używane np. Przez STD / AdvantageSix [1], chociaż używają terminu „systemy wbudowane” zamiast „RTOS”. Korzyści, jakie to przynosi, to uproszczona konstrukcja, niższe wymagania energetyczne, mniejsze zużycie pamięci i krótsze czasy uruchamiania (niektóre interfejsy urządzeń we / wy wymagają samodzielnego rozruchu, a system operacyjny musi w tym uczestniczyć, chociaż skala czasowa jest zwykle zbyt krótka, aby to zauważyć ).

Mam nadzieję, że oba uzupełnią pewne luki w powyższych informacjach i wyjaśnią luki w mojej własnej wiedzy.

[1] http://www.advantagesix.co.uk/about_us.html (Inne przykłady z pamięci nie są już dostępne online).

Robin Hodson
źródło