Jaki OS do Cortexa ?

No wlasnie ktorego warto uzywac, FreeRTOSa, CoOS, ChibiOS Nut/OS czy moze uC/OS-III, ThreadX albo embOS ? A moze jeszcze cos innego ?

Rozwiazania komercyjne wygladaja fajnie ale 70k za licencje to lekka przesada.

Ciekawa tez opcja jest zwiazanie sie z konkretnym producentem i uzywanie jego produktu, ale raz juz musialem praktycznie od nowa pisac projekt bo producent sie wycofal z produkcji potrzebnej lini procesorow - jest to troche ryzykowne.

Z checia zobacze opinie innych.

Pozdrawiam

Marek

Reply to
Marek Borowski
Loading thread data ...

ISIX RTOS ?

Pzdr, K.B.

Reply to
konrad0x42

eCos -

formatting link
-
formatting link

Vendor Lock-in. W takich sytuacjach widoczne staja sie zalety otwartego oprogramowania.

Reply to
jerzdy

W dniu 30.09.2013 12:47, Marek Borowski pisze:

Z mojej strony polecam RTEMS.

Marcin

Reply to
Marcin

Zdefiniuj potrzeby. Preemptive czy cooperative? RT czy nie? Drivery czy nie? POSIX czy nie? Linux like czy nie itd...

Reply to
Sebastian Biały

Zdecydowanie z wywlaszaniem inne to dla mnie to bardziej rozwojowy libc a nie OS :-). Z RT to jest problem bo wiekszosc OS gdzie task w stanie ready o wyzszym piorytecie wywlaszcza natychmiastowo ten o nizszym przypinaja sobie etykietke Real Time. Przyjmujac takie kryterium to i AmigaOS 1.0 jest RT. Ale tak generalnie tak uzyty OS nie moze wykluczac mozliwosci zbudowania systemu hard rt.

Pytanie bylo dosyc ogolne. Ciekawmi mnie kto uzywa czego i dlaczego. Interesuje mnie glownie spojnosc i przejrzystosc API. Np. niski stopien uzycia makr C jest wskazany. Dobrzeby bylo aby OS byl przetestowany ze stosem TCP/IP. Z moich doswiadzen wynika ze 70-90kB RAM jest potrzebne na uruchomienie webserwera serwujacego cos wiecej niz hello web.

Oczwiscie nie ma problemu jak mi wskazesz linux like system z pelnym posixem ktory na mikrokontrolerze ze 128k RAMu bedzie chodzil dobrze to z checia sie zapoznam :-).

Pozdrawiam

Marek

Reply to
Marek Borowski

System realtime mają masę innych klopotów, np. czas allokacji albo zajmowanie timerów na własne potrzeby. Ogólnie RT to raczej cooperative niż preemptive.

Forbid()/Permit() zalatwiało sprawę RT na Amidze :P

Zawsze można wyłączyć przerwania. Tylko wtedy możliwe że OS jest zbedny.

O widzisz. Mnie interesuje aby API było w C++. Obecnie 0% systemow spelnia to kreyterium, aż napisałem własny ( po czym projekt umarł) :/

Linux-like zapewne wyklucza RT.

Prywatnie stosuje inne rozwiązanie: Część RT do osobnego procesora. Sprawdziło się znakomicie.

Reply to
Sebastian Biały

A QNX?

Mnie osobiście ostatnio zainteresował FreeRTOS, sprawia wrażenie bardzo łatwego w implementacji (szczególnie dla kogoś, kto wcześniej nie bawił się OS na uC).

Reply to
Jakub Rakus

W dniu 2013-09-30 20:22, Sebastian Bia³y pisze:

Nie do koñca - patrz PREEMPT_RT, Xenomai. Polecam link:

formatting link

Oczywi¶cie w przypadku rdzeni z rodziny Cortex-M (bo chyba o takie autorowi w±tku chodzi), powy¿sze rozwi±zania kompletnie nie wchodz± w grê.

Reply to
Krzysztof Kajstura

Juz Ci kolego wskazalem RTEMS. Poczytaj sobie dokumentacje. Jest m.in. posixowe API.

Marcin

Reply to
Marcin

Oczywiscie OS bywa zbedny i mozna odpowienie "taski" poprzypinac do obslugi przerwan od timerow. Ale jak chce sie dodac do tego duzo dodatkowej pracy ktora nie jest juz czasowo krytyczna to IMO OS warto miec. Co do wczesniejszych uwag to oczywiscie zgoda ale mozna nie miec dynamicznej obslugi pamieci lub stosowac proste algorytmy alokacji (tylko potem co z ta fragmetacja robic :-) no i uzywac opoznione procedury oblugi przerwan.

Spotkalem sie z teza ze mozna dowolny OS i CPU ktory jest 10x szybszy niz potrzeba, ryzyko opoznienia teoretycznie isntnieje ale w praktyce nie wystepuje.

Uparles sie na to API w C++. W przypadku OSa z 50 publicznymi funkcjami wrapper mozesz sobie napisac w 1 dzien. Ja tam bym wolal aby nie mialo makr z C i 10 typedefow na inta.

No popatrz ja tez.

Pozdrawiam

Marek

Reply to
Marek Borowski

No wyglada ciekawie, ale odnioslem wrazenie ze to raczej alternatywa dla uLinuxa. czyt. systemy z kilkoma MB RAMu.

Pozdrawiam

Marek

Reply to
Marek Borowski

To zależy. Obecnie proste osy embedded z grubsza składają się z dwoch warstw: multitasking i drivery do urządzeń. Multitasking zazwyczaj nie jest potrzebny w embedded (masz przerwania), natomiast drivery są okay. Zazwyczaj są napisane jednak w na tyle obleśny sposób że są niedrywalne od osa więc wychodzi jak zwykle ...

To tylko teoria. Często API sa kompletnie absurdalne i wymagają masy magicznych sztuczek. Doprowadzenie do dzialania kosztuje wiele energii i bywa nieopłacalne, wolę mieć od razu w C++ bo potem wychodza kwadratowe koła.

To inna sprawa, że każdy OS jako punkt honoru uważa że należy przedefiniować cały świat. Że obcy kod już nie działa? Mamy to w d...

Reply to
Sebastian Biały

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.