Sketch troppo grande per Arduino Leonardo atmega32u4

Ciao a tutti, ho acquistato una scheda con sopra atmega32u4 su cui voglio caricare uno sketch che già utilizzo e carico correttamente su arduino uno o atmega328. Utilizzando l'IDE 1.8 quando compilo lo stesso sketch per arduino Leonardo mi dice che lo sketch è troppo grande. Su arduino UNO invece mi rimane dello spazio per saturare. Perchè? Cioè, la dimensione della flash è uguale per entrambi i micro.

Come posso fare? Grazie

Il ATmega32U4 ha la gestione nativa della USB (… contrariamente al ATmega328P che la demanda ad un chip esterno) e questo comporta una dimensione delle routines del “core” maggiore e quindi un minore spazio disponibile per l’applicazione.

Devi cercare di ottimizzare e recuprerare i bytes che occorrono per farci entrare il programma … che valori ti da al termine della compilazione?

Guglielmo

... se si esamina il file "boards.txt" che descrive le varie schede, si vede chiaramente che:

  • per Arduino UNO: uno.upload.maximum_size=32256

  • per Arduino Leonardo: leonardo.upload.maximum_size=28672

... ovvero 3584 byte in meno.

Guglielmo

Grazie per la risposta. Mi da che lo sketch occupa il 112% dello spazio. E' già tutto molto ottimizzato, c'è un modo magari per ridurre spazio occupato da serial.print?

Attualmente uso Serial.print(F());

ekjk: Attualmente uso

Serial.print(F());

... mmm ... in questo caso serve l'opposto, prova a NON usare la macro (F()) e vedi se cambia qualche cosa (... non ci spero molto, ma provare non nuoce) ::)

Guglielmo

L'avevo usata per risparmiare forse la RAM, non ricordo. Altri suggerimenti?

ekjk: Altri suggerimenti?

... ridurre il programma o cambiare scheda ... non è che ci sono tante strade eh !

Guglielmo

Le istruzioni Serial.print occupano un bel po. Un modo più snello non c'è?

Non sono le singole Serial.print() ... è la gestione della seriale in se che, sulla leonardo, si porta dietro la gestione della USB.

Devi vedere tu il codice ... la mia opinione è che, se stai già al limite sulla UNO, alla prima modifica vai fuori anche li e quindi ... è tempo di passare a qualche cosa con più memoria.

Guglielmo