Nota: questa domanda menziona specificamente due RTOS ma è più generica e può probabilmente rispondere a chiunque abbia già scritto codice C per RTOS incorporati e abbia eseguito il proprio software direttamente su MCU.
Sono interessato a saperne di più sugli RTOS incorporati e scrivere applicazioni per loro. Attualmente sto guardando Embox e RIOT perché sono open source, moderni, attivi e sembrano avere un'ottima documentazione. Il mio obiettivo ha due fasi: la Fase 1 è capire come compilare e far lampeggiare questi SO su un MCU (probabilmente AVR o ARM). La fase 2 è quindi quella di scrivere un semplice programma C (sostanzialmente un demone senza testa), che si evolverà nel tempo come "app per hobby". Vorrei quindi eseguire il flashing / distribuire questo programma sullo stesso MCU, distribuendo con successo un appstack composto da Embox / RIOT e la mia app residente su di esso.
Prima di percorrere strade che alla fine portano a vicoli ciechi, mi sono imbattuto in questo articolo che fa un ottimo lavoro nel spiegare perché le app in tempo reale, scritte in C / assemblatore e trasmesse agli MCU, non hanno davvero bisogno di RTOS al di sotto di esse .
Quindi ora sono davvero confuso e sto mettendo in discussione alcune delle mie conoscenze fondamentali sulla teoria dell'informatica. Immagino che sto provando a decidere se utilizzare o meno Embox / RIOT in primo luogo:
- Segui il corso e scegli uno "stack app" sull'MCU di entrambe le app OS +; o
- Fai attenzione all'avviso dell'articolo e vai con un MCU che esegue la mia app "bare metal"
Ovviamente, il primo è più lavoro e quindi dovrebbe esserci un buon motivo / payoff per percorrere quella strada. Quindi chiedo: quali sono i reali vantaggi che questi (e simili) RTOS integrati offrono agli sviluppatori di app MCU / C? Quali funzionalità specifiche potrebbero trarre vantaggio dalla mia app C (forse non reinventando la ruota?) Utilizzando un RTOS? Cosa si perde abbandonando RTOS e diventando bare metal?
Sto chiedendo esempi concreti qui, non l'hype mediatico che ottieni quando vai alla voce di Wikipedia per RTOS ;-)