Contatore byte utilizzati sketch aumenta poco...

Ricordo che nelle versione dell'IDE 1.5.x, esempio la 1.5.5r2, è stato inserito anche il conteggio della memoria RAM occupato dalle variabili statiche.

Riguardo alle dimensioni del codice, è più facile che il compilatore ottimizzi meglio un codice lungo che uno cortissimo.

@Mauro, Grazie per la spiegazione, anche se sto a digiuno in materia, la tua spiegazione è abbastanza chiara considerando le mie carenze in tali temi. Vedrò di studiarlo in dettaglio per imparare il più possibile. Forse il mio sbaglio è voler correre quando ancora non so camminare!! (nella programmazione) d'altronde, da autodidatta si impara in maniera non lineare, saltiamo direttamente a ciò che ci interessa tralasciando le cose che vengono prima con la conseguente "confusione" o carenza tecnica.

Chiedo scusa se ho mal interpretato le vostre risposte/commenti, ma sono felice che alla fine, ci siamo capiti!

Grazie a tutti per il tempo dedicatomi!

Antonio

mi sono imbattuto in questa discussione via google, quando in un topic entrano i maestri tipo quelli qui presenti non puo' che uscirne un ottimo lavoro. A questo topic si aggiunge un ottimo "alunno" hiperformance71 il quale mi ha colpito, in quanto pur avendo ragione dall'inizio (dichiarare una variabile occupa sia flash che ram, al netto di tagli eseguiti durante compilazione) ha saputo tenere il punto educatamente e con test utili ed interessanti.

Tento di dare anche un mio contributo visto che una domanda di nid69ita e' rimasta inevasa:

Anche su questi micro l'indirizzo iniziale SRAM può variare

Anche la SRam, come la flash, ha un indirizzo fisso di inizio $000, ma ad esempio su Atmega8515 all'inizio ram ci sono i 32 registri generali, e successivamente i 64 registri input output. Quindi su questa MCU la classica Ram a cui si ci riferisce inizia a $060

Questo vale anche per i micro Attiny e Atmega. Prendiamo l'Atmega328P, se vai al capitolo 8.3 riguardante la SRAM trovi subito una tabella in cui vedi come viene partizionata la memoria volatile:

  • 32 registri di uso generale (questi sono i registri del micro, che in assembly si indicano da R0 a R31): da $0000 a 0x001F (31)
  • 64 registri di I/O (contengono la gestione delle porte di I/O del chip): da $0020 (32) a $005F (95)
  • 160 registri I/O estesi (sono usati per particolari operazioni di caricamento e scrittura indiretta con l'uso dei registri X, Y e Z): da $0060 (96) a $00FF (255)
  • la RAM utilizzabile dalla CPU per i suoi dati: essa varia da $0100 (256) fino a 0x02FF/0x04FF/0x4FF/0x08FF (767/1279/2303) rispettivamente per Atmega88/168/328

La RAM cambia di dimensione a seconda del chip, se fai conti sono 512,1024/2048 byte

leo72: Questo vale anche per i micro Attiny e Atmega.

Certo, ti diro' di piu', il concetto vale anche per le MCU "senza" Sram, in quel caso si useranno solo i 32 registri generali XD