Close

Práce s pamětí

Úvodní stránka Fórum Hardware Arduino Práce s pamětí

Aktuálně jsou na stránce zobrazeny 2 příspěvky - 1. až 2. (celkem z 2)
  • Autor
    Příspěvky
  • #5968
    kjurkovic
    Účastník

    Ahojte přátelé arduina,
    prosím Vás – jsem v relativních začátcích v programování. Stalo se mi však, že když jsem si vymyslel aplikaci, vše zkompiloval a nahrál do arduina, aplikace vzala z dostupných 32kB paměti cca 65%, nicméně proměnné zabíraly cca 71% SRAM- což se mi zdá trošku moc. Sice to není 100%, avšak program mi blbne. Když zakomentuju některé funkce, ty ostatní co nefungovaly se zase rozjedou (jsou však na sobě nezávislé). Dá se někde vyčíst, co kolik zabírá, nebo čeho se při psaní složitější aplikace vyvarovat ? V projektu používám knihovny SD, SPI, virtuabotixRTC a LiquidCrystal. Mám Arduino UNO…
    (jen doufám, že mi neporadíte „kup si Ard. MEGA, nebo DUE).

    a další dotázek – dá se někde po kompilaci nahlédnout do výsledné binárky ? -resp. ukládá ji vývojové prostředí někam na dostupné místo ? Díky, Karel.

    #5969
    posjirka
    Účastník

    1. obávám se , že takto ti nikdo nepomůže.
    Je zvláštní , že to musím psát v každém vlákně, ale BEZ KODU TO PROSTĚ NEJDE.
    dej sem kod a můžeme ti poradit jak třeba ušetřit pár bytů.
    Ani ti pak nemůžeme poradit co ti nefunguje když nevíme CO VLASTNĚ DĚLÁŠ.
    Ušetření místa v SRAM se dá obecně docílit tím, že např:
    – nahradíš neměnné promenné (číslo pinu ledky apod) za konstanty
    – né všechny proměnné budou tyu integer ale máme třeba boolean, byte atd.
    záměnnou integer za byte ušetříš 1 byte (samozřejmě pokud potřebuješ hodnoty 0-255).
    – použitím funkcí a metod nemusíš některé kusy programu opakovat.

    2.Výsledný kod v assembleru najdeš tak, že si nastavíš:
    File – Preferences – Show verbose output during zatrhneš compilation.
    Tím se ti bude vypisovat průběh kompilace. Když se podíváš do výpisu tak jsou tam soubory *.eep a *.elf to jsou ty co hledáš.

Aktuálně jsou na stránce zobrazeny 2 příspěvky - 1. až 2. (celkem z 2)
  • Pro reakci na toto téma se musíte přihlásit.