
Z prvních experimentů to vypadá, že STM32F103 s jádrem STM32duino potřebuje mnohem více paměti flash i RAM než třeba běžné Arduino UNO. Pro program BareMinimum, což jsou jen prázdné smyčky setup() a loop() IDE hlásí:
Arduino UNO
Projekt zabírá 444 bytů (1%) úložného místa pro program. Maximum je 32256 bytů.
Globální proměnné zabírají 9 bytů (0%) dynamické paměti, 2039 bytů zůstává pro lokální proměnné. Maximum je 2048 bytů.
Arduino STM32F103C8T6 / 128KB s podporou Serial bez podpory USB
Projekt zabírá 6260 bytů (4%) úložného místa pro program. Maximum je 131072 bytů.
Globální proměnné zabírají 780 bytů (3%) dynamické paměti, 19700 bytů zůstává pro lokální proměnné. Maximum je 20480 bytů.
Arduino STM32F103C8T6 / 128KB s podporou USB jako Serial - komunikační ekvivalent Arduino UNO
Projekt zabírá 36080 bytů (27%) úložného místa pro program. Maximum je 131072 bytů.
Globální proměnné zabírají 5112 bytů (24%) dynamické paměti, 15368 bytů zůstává pro lokální proměnné. Maximum je 20480 bytů.
Zkusil jsem i náročnější aplikace, ale nároky na paměť se mi zdají nepřiměřeně vysoké. Ani druhý poznatek mě nepotěšil. Arduino UNO je 8 bitové, STM32F103 je 32 bitové a má 4,5 x vyšší taktovací frekvenci. Ovšem moje testy ukazují, že rozdíl v rychlosti zpracování programu je poměrně malý. Hovořím stále o platformě Arduino a malým rozdílem myslím skutečnost, že STM32 se mi jeví třeba cca 1,5x rychlejší než UNO. To všelijaké testování a zkoušení zabere hodně času, speciálně kompilace pro STM32 trvá na mém PC ukrutně dlouho. Proto bych ocenil, kdybyste prezentovali svoje zkušenosti, pokud nějaké máte. A ještě jsem narazil na jednu věc, která mě trápí. Nahraju do Arduino UNO i Blue Pill stejný program, který cosi vypisuje na sériový port COM (pochopitelně mám na mysli Virtual COM, tedy převodník USB/RS232). Když spustím Serial Monitor z Arduino IDE, tak výstupy z obou Arduin fungují. Když však použiji jakýkoliv jiný seriový terminál, tak mi funguje pouze výstup z Arduino UNO. BluePill COM je ready, terminál se připojí, ale nic nevypisuje. Je to pro mě naprosto nepochopitelné. Poraďte!