Skocz do zawartości

Systemy czasu rzeczywistego


kling

Pomocna odpowiedź

Planuje stworzyć nieco bardziej złożony sterownik do robota, który oprócz sterowania silnikami i odczytem pomiarów miałby zająć się również filtracją i dosyć rozbudowaną komunikacją. Wszystko musi dziać się w ustalonych ramach czasowych.

Chciałem przy tej okazji poznać zalety (i pewnie wady) systemów czasu rzeczywistego.

Czy ktoś miał doczynienia z w/w systemami? Platforma na której to wszystko ma się dziać to STM32F4.

Myślałem o FreeRTOS ale dokumentacja do niego jest płatna:( [reference manual]

Chodzi właśnie o taki prostszy, wydajny system niż całego Linuxa.

Chętnie poznam Wasze doświadczenia.

Link do komentarza
Share on other sites

Musisz sobie zdawać sprawę z różnicy między układem czasu rzeczywistego a systemem operacyjnym czasu rzeczywistego. Ten pierwszy zakłada właśnie wykonywanie wszystkich operacji w ustalonych ramach czasowych. Dzięki przerwaniom, buforom danych, nadawaniu priorytetów itp. możesz te ramy czasowe odpowiednio skracać. Jednak nawet najprostszy program na delayach jeżeli poprawnie steruje robotem, dalej spełnia warunek działania w czasie rzeczywistym.

System operacyjny czasu rzeczywistego posiada natomiast schedulera, który przydziela czas procesora współbieżnym procesom. Każdy z nich ma swój własny stos, mają też warstwę pamięci wspólnej i bardziej rozbudowane systemy uprawnień, żeby dwa współbieżne procesy nie działały nawzajem na swoją szkodę. Musisz sobie zdawać sprawę, że te system operacyjny ze względu właśnie na te czynności zarządzające po pierwsze potrzebuje dużo więcej pamięci ROM i RAM, a po drugie dostęp do sprzętu się wydłuża właśnie przez te dodatkowe operacje. Jednak jeżeli dysponujesz dobrym sprzętem kwestie wydajności nie są aż tak widoczne. Natomiast plusami takiego rozwiązania jest po pierwsze łatwość przenoszenia programu pomiędzy różnymi platformami, możliwość korzystania z gotowych programów (np. stosu IP) i bezpieczeństwo (dzięki nadzorowi nad procesami nie jest możliwe np. utknięcie w nieskończonej pętli).

Z twojego opisu wynika, że tych współbieżnych zadań dla procesora nie jest aż tak dużo i możliwe, że poradził byś sobie nawet lepiej bez użycia RTOSa. Mam nadzieję, że to co wyżej napisałem okaże się pomocne w podjęciu decyzji. Jeżeli chodzi o FreeRTOSa to słyszałem, że jest dobry, też chciałem go potestować, ale jeszcze nie miałem czasu. Jak chcesz zobaczyć inne możliwości, to tutaj masz listę RTOSów z wikipedii:

http://en.wikipedia.org/wiki/List_of_real-time_operating_systems

Link do komentarza
Share on other sites

Dzięki za odpowiedź.

Może nie ująłem tego dobrze, ale zdaję sobie sprawę z tej różnicy.

Jednak dla własnego doświadczenia chciałem poznać jakiś system operacyjny czasu rzeczywistego a dwa porównać jego możliwości ze stworzeniem zwykłego programu, który Ty nazywasz układem czasu rzeczywistego.

Dlatego nie chodzi mi tutaj tyle o sens stosowania jednego czy drugiego rozwiązania a o poznanie RTOS'ow.

Listę znam, i najłatwiejszy na początek wydaje mi się być właśnie FreeRTOS. Jednak boli mnie ten płatny reference manual...

Link do komentarza
Share on other sites

Na stronie FreeRTOSa masz dostępny za darmo API Reference. Płatna jest chyba tylko wersja PDF. Możliwe, że jest trochę rozszerzona, bo inaczej to by było bez sensu. Poza tym w necie łatwo znaleźć tutoriale, jest ich dużo więcej niż w przypadku innych RTOSów. Dodatkowo jest chyba najpopularniejszy, więc powinien być najlepszy na początek.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Pobawiłem się trochę tym FreeRTOSem na STM32. Brak dokładnej dokumentacji nie jest jakimś wielkim problemem. Wszystko co dotyczy jądra jest na stronie i w przykładach, a funkcje odwołujące się do sprzętu i przerwania piszesz i tak samemu tylko musisz się stosować do pewnych opisanych na stronie projektu reguł. Przeczytanie potrzebnych materiałów ze strony i uruchomienie demonstracyjnego programu na swojej płytce trochę zajmuje, ale jak to się przebrnie to dalej już z górki. Brak tego płatnego pdfa kompletnie nie przeszkadza.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.