Arduino a alokace mista pro promenne

Jaroslav Lukesh lukesh na seznam.cz
Čtvrtek Říjen 24 14:17:51 CEST 2019


dá se docela dost zbavit dynamicky alokovaného místa použitím prefixu 
"static" na dynamicky vytvořenou proměnnou

static int pocitadlo

udělá prostor v paměti na proměnnou podobně, jako by byla definovaná na 
začátku. Pak když to přeložíte, zjistíte, kolik všecky ty dynamicky dělané 
proměnné ve skutečnosti berou a pak optimalizovat dál (musíte ale vědět co 
děláte, ne že to napíšete všude bezhlavě). Samozřejmě F() je pak na ráně 
jako první akce pro zmenšení místa.

Nevím, jak máte optimalizovaný překlad, používá se -oS na velikost, nebo -o3 
na rychlost. To najdete někde u parametrů platformy jak je složka arduino15, 
to je první věc na co hrabu, takže nevím jak je to default. UECIDE to má 
přímo jako volbu v menu.

----- Původní zpráva ----- 
Od: Martin Locker

RAM je potřeba na ten textový řetězec, standardně se ukládá do RAM jako 
proměnné. Dá se vynutit jeho uložení do FLASH makrem F().


Serial.println(F("Retezec ve FLASH"));

----- Původní zpráva -----
Odesilatel: "Jirka Mww" jirka.mww na gmail.com

nic moc náročného. Při překladu se mi ale začala objevovat hláška, že budu 
mít brzo málo místa pro proměnné v RAM , přitom jich tam zas až tolik není.



Další informace o konferenci Hw-list