Zkušenosti s RTOS

Electrin

Zkušenosti s RTOS
« kdy: 01. 03. 2018, 14:21:17 »
Ahoj všichni,

nedávno jsem tu do diskuze psal dotaz ohledně tvorby ovladačů pro embedded zařízení s ARM Cortex-M procesory, s ohledem na standard Posix. Uváděl jsem, že FW píšeme na holé železo. Doba ale pokročila a s ní i náročnost aplikací, tudíž by se hodil nějaký RTOS, pokud možno opensource  ;)

Co jsem si provedl menší průzkum bojem, tak vykrystalizovaly tyto:
a) NuttX, který představuje svým pojetím odlehčenou verzi Linuxu (Posix, ANSI...)
b) FreeRTOS, všichni ho propagují, mně se zdá poněkud zmatečný, nepřehledný, nestandardizovaný
c) Zephyr, poměrně nová záležitost, pod křídly Linux Foundation, byť není Posix kompatibilní.
d) RTEMS, Posix kompatibilní, používaný armádou USA, tudíž asi spolehlivý.
e) mbed OS, dnes spravovaný ARM asociací, určený pro IoT

Nejvíce se mi zalíbil NuttX, hlavně kvůli pojetí "já jsem malý Linux" a vestavěnému shellu. Na netu jsou k dohledání články o portování, používání, či např. o rozchození na desce FRDM-KL525Z, která se mi zrovna válí na stole.  Dokumentace nic moc podrobná, ale vyjít se z ní nechá. Plus představují poměrně malé nároky na HW.
Jako druhý kandidát, který se možná probojuje do první pozice, je Zephyr (https://www.zephyrproject.org/). U něj mě dostala široká a aktivní komunita, přehledná dokumentace, zainteresovanost společnosti NXP, důraz na bezpečnost a konektivitu. Dalším plusem je hafo podporovaných destiček.

Ostatní kandidáti mě už tolik neoslovili, ale kdo ví....

Jaké vy máte zkušenosti s uvedenými RTOS, k jakému byste se přiklonili? Pracuje tu někdo se Zephyrem?

Děkuji předem za odpovědi.


Rejpal

Re:Zkušenosti s RTOS
« Odpověď #1 kdy: 01. 03. 2018, 14:54:16 »
QNX, ale uz cca deset let jsem s tim nedelal

Honza

Re:Zkušenosti s RTOS
« Odpověď #2 kdy: 01. 03. 2018, 16:27:38 »
A proč ne FreeRTOS? Koupil ho Amazon, má s ním velké plány...

M.

Re:Zkušenosti s RTOS
« Odpověď #3 kdy: 01. 03. 2018, 16:56:45 »
Co RTAI ( https://www.rtai.org/ )? Pokud na ten váš HW dostaneš nějakou svoji oblíbenou verzi linuxu, pak kernel patchneš na podporu RTAI, tak tam máš komplet linux a k tomu možnost real-time modulů buď v jádře nebo pokud nezáleží na každé mikrosekundě, tak v user space přes LXRT.
Co si vzpomínám, tak někdo vydával pro Cortexy i příslušné patche pro kernely.
My to používáma na normálním x86 like embedded HW, kde máme vykuchaný Slackware doplněný o RTAI.

Re:Zkušenosti s RTOS
« Odpověď #4 kdy: 01. 03. 2018, 17:21:14 »
riešenia  inplementovane na jado Linux:

RTAI-  vývojári hlavne z SUI a ITA

RTLinuxFree - hlavne z AUT

RTLinuxPRO - Barbanov a Yodaiken z USA, ocj firmu Finite State Macgine Labs kúpil  Wind River a ten piyom kúpil Intel. max. oneskorenie 48 nanosekúnd!!  za mojich čias 1999 USD/rok/developer ma jednu HW architektúru a 3999 USD/rok/developer za všetky  X86, ARM a tuším  SPARC

RTpreempt patch - vývoj  Molnár Ingo (HUN v našom  poradí  Ingo Molnár) a Thomas Gleixner (GER) a údržba Red Hat.



jm

Re:Zkušenosti s RTOS
« Odpověď #5 kdy: 01. 03. 2018, 21:53:48 »
Používám FreeRTOS v projektu na kterém zrovna dělám (On device FS USB + PHY HS USB, STM32F4xx na CAN + UART + SD karta). Amazon ve FreeRTOS verzi 10 udělal opravdu spoustu změn, které mi ulehčili práci.
1) Konečně FreeRTOS přestal spouštět kód, který vykopával debugger ze session. Takže jsem nahrál data do MCU a chtěl jsem projít rutinu, ale ouha debugging session aborted.
2) zařadili stream buffery (xStreamBuffer případně xStreamBufferISR pro IRQ rutiny) pro tahání dat z UARTu je to naprosto geniální, protože to jsou prakticky kruhové buffery.
3) Opravili spoustu bugů. Například ve verzi 9 jsem chtěl v IRQ rutině uložit data do xQueueISR, ale v okamžiku kdy jsem tak udělal, celý FreeRTOS se zasekl a pomohl pouze reset...

Electrin

Re:Zkušenosti s RTOS
« Odpověď #6 kdy: 02. 03. 2018, 09:19:41 »
Díky za názory. HW, se kterým pracujeme, představují zejména mikrokontroléry s jádrem ARM Cortex-M0/M4 od firmy NXP (Kinetisy řady K20, KL, KV...), tedy nic výkonného, o Linuxu si lze nechat jen zdát  ;D 
O záštitě Amazonu nad FreeRTOSem jsem již něco zaslechl, byť jsem to hlouběji nestudoval. Určitě to omrknu. Pravdou je, že se v případě tohoto systému jedná asi o nejrozšířenější RTOS dostupný jako opensource. Bohužel mě u něj odrazuje již zmíněná chaotičnost (možná subjektivní pocit, ale takové haldy #ifdef se jen tak nevidí....  :)), nestandardizovanost a nejednotné rozhraní pro ovladače. Což už ale nemusí díky Amazonu platit, ověřím to...

Tak nevím, zatím váhám mezi NuttX alá malým Linuxem na jedné straně, a Zephyrem na straně druhé.

v

Re:Zkušenosti s RTOS
« Odpověď #7 kdy: 02. 03. 2018, 09:35:11 »
já se teda taky hlásím k těm co mají s FreeRTOS pozitivní zkušenost (AVR, AVR32, Cortex-M3), líbilo se mi, že se toho nesnaží poskytnou příliš (prakticky jenom vlákna a IPC)

Joskoo

Re:Zkušenosti s RTOS
« Odpověď #8 kdy: 02. 03. 2018, 10:36:09 »
FreeRTOS je de-facto standard na embedded scene. Ma vhodnu licenciu, takze neobmedzuje, kazdy viac-menej vyznamny vyrobca podporuje aj FreeRTOS. To ze ho "kupil" Amazon vobec nevadi, ako sa spominalo verzia 10 je uz fakt namakana, debug v eclipse je v pohode, pripadne pouzijes tracelyzer od seggeru.
(https://mcuoneclipse.com/2017/03/18/better-freertos-debugging-in-eclipse/) - da sa portovat prakticky na cokolvek.

Nuttx som mal pouzity asi 2x (v ramci testu), co si pochvalujem je fakt velka podpora - prakticky vsetkeho, na rozdiel od FreeRTOS (tam to povacsine podporuje vyrobca vo svojom SDK).

Zephyr sa mi zda taky tazkopadny moloch, to co vo FreeRTOS trvalo hodinu, v Nuttx tak dve, tak v zephyre je to na dve salky kafe...
VYber, skus a poreferuj :)