Tähän kysymykseen on keskusteltu täällä: linkki
Ote: Viitattu Linux Journal -artikkeli on täällä: link
Mielestäni 8052- ja M68HC12-portit ovat erityisen huonoja valintoja NuttX: n luonnehtimiseksi, koska niillä molemmilla on joitain ongelmia, ja NuttX on nyt versiossa 5.16 63 julkaisulla.
Täytin haastattelu "Julkaisija" -välilehdellä: linkki; siellä on myös arvostelu: linkki.
Kattava NuttX-dokumentaatio on saatavilla täältä: linkki.
hcs12- ja 8051-osat ovat seuraavat:
8051 / 80c52: Tämä arkkitehtuuri on todella RTOS-vihamielinen. Siinä on pieni laitteistopino (128 tavua 8051: ssä, 256 80c52: ssa) erillisessä muistipaikassa (osoite 0). Tehtävien vaihtamiseksi sinun on kopioitava estettävä tehtävä koko pino omistetusta osoitteestaan johonkin tallennussijaintiin ja kopioitava sitten aloitettava tehtävä koko pino tallennuspaikastaan omistettuun pinopaikkaan. YECH!
Ja siitä lähtien pino on niin pieni. Pino on erittäin, erittäin helppo ylittää - varsinkin keskeytyksen käsittelyn aikana.
NuttX 8051 -portti on täydellinen ja toimiva (ainakin viimeisen kerran, kun käytin sitä). Mutta jotta se olisi hyödyllinen, sinun on todennäköisesti kopioitava myös koko pino jokaisessa keskeytyksessä, jotta se ei pääse liikaa. Periaatteessa menetin kiinnostuksen tuolloin, mutta jos joku todella motivoitui käyttämään 8051: tä, se on toteutettavissa (ellei sitä ehkä suositella).
Mikä oli hyvää 8051-portissa on, että se oli loistava harjoitus saada NuttX hyvin pieneen muistipaikkaan. 8051-portti toimii 32 kt: n RAM-muistilla - joka sisältää RTOS: n, libc: n, kääntäjäkirjastot, merkittävän testiohjelman, .data / .bss ja ja kasan. Ja vähän muistia säästämättä!
hcs12: Tämä on projekti, jonka parissa työskentelen vapaa-ajallaan, kun en tee mitään muuta. Se ei ole vielä valmis eikä ole vielä valmis parhaaseen aikaan.
Mitä tulee vertailuun muihin RTOS: iin, minulla ei todellakaan ole hyviä, valtuutettuja vastauksia, koska en käytä muita RTOS: ita. Mutta tässä on naiivi ymmärrykseni:
FreeRTOS sisältää paljon latauksia ja todella pienen, noin 4 kt: n jalanjäljen. Se on valitsemasi RTOS todella pienille MCU: ille. Piimyyjät niputtavat FreeRTOS-portin melkein jokaisen MCU: n kanssa. Joten se on oletusarvoinen RTOS-valinta.
Siellä on kymmeniä kilpailijoita, joilla on FreeRTOS. ChiBIOS tulee mieleen heti. Nämä ovat kaikki pieniä, erityyppisiä ajureita.
Todellisen vertailun tekemiseksi meidän on ensin määriteltävä, mitä tarkoitamme RTOS: lla: Onko se vain ajoittaja? Vai onko se integroitu joukko käyttöjärjestelmän vakiotoimintoja - kuten ajastin, tiedostojärjestelmä, laiteajurit, muistinhallinta, verkostoituminen jne. Useimmat käyttöjärjestelmät, esimerkiksi Linux, ovat täydellisiä kehitysympäristöjä, ei pelkästään ajoittajia. NuttX on täysi käyttöjärjestelmä on sama merkitys kuin Linux. Tässä on pari muuta:
RTEMS : Olen työskennellyt tämän kanssa. Se on ollut olemassa ikuisesti, ja sen pitäisi olla erittäin vakaa. Se on suuri; ajatella> 100 kt. Mielestäni sen tavoite on hieman MCU-markkinoiden yläpuolella.
uCOS : En ole koskaan käyttänyt sitä, mutta tämä on RTOS useiden suosittujen käynnistyslatainten alla, eikö olekin? Minusta tuntuu siltä, että se on samanlainen kuin RTEMS, mutta en todellakaan tiedä mistä puhun.
Kuinka vertaisin NuttX: ää näihin: No, se on paljon pienempi. Aloitusjalanjälki on noin 20 kt. Täysin varusteltu konfiguraatio on noin 10–20 kt. Toinen ero näistä RTOS: ista on, että NuttX on hyvin standardisuuntautunut. Voit ajatella NuttX: ää pienenä Linux-työhön. Suurin osa koodeista, jotka kääntävät ja suorittavat Linuxia, toimivat myös NuttX: ssä (jotkut järjestelmäkoodit, kuten verkkokoodi tai demonit, saattavat tarvita säätämistä).
Mielestäni RTEMS on keskittynyt enemmän mikroprosessoreihin; NuttX keskittyy enemmän mikro-ohjaimiin.