Za sebe můžu říct, že ono to zase tak růžový není, jako se vším.
STM32 jsou super z pohledu HW, zatím (na rozdíl od třeba SAMů od Atmelu všechno fungovalo), ale přesto je tady několik detailů, na který by měl být brán zřetel:
1) STLink I vs STLink II. Jednička je nepoužitelná a v Linuxu se tuším ani nedá rozchodit.
2) Dodávaný soubory s popisem periferek jsou zmatený a leckde obsahují cyklický inkluze atd. Strávil jsem asi dva týdny jenom fixováním, aby to šlo rozumně zbuildovat.
3) Některý HAL moduly jsou nefunkční. Třeba USB Device ve funkci COM portu nemá (resp. před dvěma lety) funkce pro zápis/čtení dat (!!!).
4) Když STM32, tak je výhodou použít FreeRTOS. Ten je dokonce součástí kódu, který vybleje STMCube (nástroj pro konfiguracia vygenerování projektu). Jenže co je platný naportovaný a běžící FreeRTOS, když obsluha HW nečeká na mutex nebo event, ale motá se v cyklu?
Z důvodů 2,3,4 mám napsaný vlastní HAL. Holt podpora SW ze strany výrobců MCU je standardně výsměchem a mezi slepými jednooký králem :( Asi ty knihovny píše nějaký student na praxi.
Existuje i komunitní řešení: https://github.com/libopencm3/libopencm3
Hodně nízkoúrovňové knihovny, ale zatím jsem neměl problém.
Ono to je růžové asi jako socani. Pokud budete používat Standard Library, NEEEEEE HAL, Cube. A budete trochu umět Cčko. A použijete Keil (32kB Vašeho, přeloženého kódu). Jen proboha NEEEEEEE Atollic. Ten druhý den neví, že jste včera udělali projekt. Teda asi jen pod Win10. Jinak fungoval. Asi za to může šmírácký Win10, který je HOOOOOOOdně nefunkční.