Vývojová deska je jedna věc ale do simulátoru se nemusí nahrávat kód a lze rychle krokovat co se děje (což u vývojové desky neumím, ale četl jsem že by to nějak jít mělo i když asi ne tak pohodlně)
Velice pohodlně. Vývojové desky mívají na jednom usb kabelu integrované napájení, debugger, sériovou linku i programátor. Připojí se k tomu jakékoliv rozumné prostředí případně i čisté openocd + gdb.
Jak funguje abstrakce HW RTOS? Chápu, že pro multitasking může být výhodné než časovat každou věc přes millis() i když v mých projektech to zvládám a myslím že tím mám větší kontrolu.
Main loop přístup má svoje užití. Ale má i nevýhody: například časově kritické úlohy se musí řešit přímo v interruptu (blokuje to další interrupty). RTOS v interruptu např. jen naplánuje úlohu s vyšší prioritou a pustí ji už mimo interrupt (ostatní úlohy počkají). To je zase pomalejší než čistý interrupt, ale to téměř nikdy není problém. Oba přístupy jsou použitelné a vždy jde o kompromis mezi čitelností kódu a výkonem.
Chtěl bych naprogramovat spíš univerzální jádro (možná s možností přejít na různé MCU, ale hlavně řešící ty problémy co jsou třeba výdy řešit, WDT, ISR, startování, update FW), potom funkce obsluhující konkrétní hw (komunikační moduly, SDkartu, další periferie) a tím mít připraveno na konkrétní funkce pro daný projekt.
Proč vynalézat kolo? Tohle přesně poskytuje libopencm3 + nejaký rtos. Nebo v Arduino formě třeba Moteino -
https://lowpowerlab.com/shop/product/184No možná rovnou koupit konkrétní MCU v TME a udělat odboku nějaký vývojový modul sám což asi vyjde po všech stránkách lépe.
Nevyjde. Mám vlastní desku, ale i tak jsem ji začal vyvíjet na STM Nucleo. Vlastní hardware jsem řešil až pak. Navrhnou správně pcb trvá dlouho a není to na první dobrou. Navíc vývojová deska řeší debugging, seriovou linku a nahrání programu do mcu. Vlastní deska to jen tak mít nebude..
Má smysl když chci spíše ovládat periferie než dělat složité výpočty vybírat MCU podle toho jestli má FPU?
Záleží jaké periferie a k čemu. I "jednoduchý" PID kontroler může využít možností FPU, když to projektu pomůže.
Všude se píše jaký je odběr proudu MCU při různých sleep režimech, kde zjistit nebo podle čeho odhadnout odběr bez uspávání?
Ty odběry při sleep režimech se typicky týkají odběru samotného instrukčního jádra. Pak musíte přidat ještě spotřebu periferií, která je taky v datasheetu obvykle popsaná. Sleep režimy jsou každopádně v embedded základ, proč nechat MCU běhat při čekání na interrupt ve smyčce, když můžu cpu jednou instrukcí pozastavit (WFI).