Go Down

Topic: Recuperare byte è possibile? (Read 1 time) previous topic - next topic

baghyyy

Ciao a tutti,
ho scritto da utente arduino medio ignorante un pde che è circa 31500 byte ma il mio spazio a disposizione è di soli 30720 byte.
Mi domando... ma è possibile recuperare un po di byte con il bootloader o altro?
Oppure come posso ridimensionare il pde?

testato

due considerazioni:
- e' difficile che tu, specialmente se dici di essere alle prime armi, possa aver creato uno sketch cosi' grande, o meglio che ne abbia bisogno realmente, probabilmente le cose che fai si possono fare con meno comandi, meno librerie, ecc. Se posti lo sketch completo di certo te lo riducono della meta' gli esperti sw  :)

- visto che parli di pde suppongo tu usi una vecchia versione, hai anche una vecchia board ? sulla 2009 e sulle uno rel1 era caricato il vecchio bootloader che occupava 2k, mettendoci il nuovo (vedi la mi guida in firma per info), recuperi 1,5k
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

leo72

Penso anch'io che il codice non sia ottimizzato e che riscrivendolo meglio puoi recuperare spazio.

PaoloP

#3
Mar 16, 2013, 12:26 pm Last Edit: Mar 16, 2013, 12:28 pm by PaoloP Reason: 1
Forse con qualche operazione di taglia e cuci si potrebbe fare. Ma senza avere lo sketch sotto mano è impossibile dirti cosa e dove ottimizzare.
Inizia con le dichiarazioni delle variabili. Se non superano certi limiti puoi scegliere un tipo più piccolo. ad esempio passare da long a int o da int a byte.
Eliminare dove è possibile l'oggetto String e usare una array di char e altre cose simili.

baghyyy


due considerazioni:
- e' difficile che tu, specialmente se dici di essere alle prime armi, possa aver creato uno sketch cosi' grande, o meglio che ne abbia bisogno realmente, probabilmente le cose che fai si possono fare con meno comandi, meno librerie, ecc. Se posti lo sketch completo di certo te lo riducono della meta' gli esperti sw  :)

- visto che parli di pde suppongo tu usi una vecchia versione, hai anche una vecchia board ? sulla 2009 e sulle uno rel1 era caricato il vecchio bootloader che occupava 2k, mettendoci il nuovo (vedi la mi guida in firma per info), recuperi 1,5k

Dici che con il boot di 1.0 occupa solo 500byte circa? appena ho un attimo di tempo ci provo ma poi posso caricare sempre con l'ide 23?

Poi devo provare anche come mi ha suggerito PaoloP cambiando ove possibile le dichiarazioni.

Nel caso non dovessi riuscirci in questi due casi vi posto un po di sketch ma non voglio che me lo modificate voi ma devo essere io a sbatterci le corna! vorrei solo dei suggerimenti come ora!!!

testato

Si, puoi usare la 0.23 anche con il nuovo boot, anzi la 1.x non ti serve nemmeno perche è proprio nella 0.23 che è stato introdotto il nuovo bootloader
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

uwefed


Nel caso non dovessi riuscirci in questi due casi vi posto un po di sketch ma non voglio che me lo modificate voi ma devo essere io a sbatterci le corna! vorrei solo dei suggerimenti come ora!!!

Non solo un po. Prego lo sketch intero.
Non aver paura, non investiamo cosí tanto tempo da riscriverlo. Ti daremo solo suggerimenti come migliorare e poi ci siamo qua a rispondere ai Tuoi dubbi.

Ciao Uwe

baghyyy

#7
Mar 16, 2013, 10:28 pm Last Edit: Mar 16, 2013, 10:34 pm by FràFrà Reason: 1
Senti ma leggendo un po tra la tua guida e quella di menniti ho visto che posso caricare direttamente lo sketch senza boot recuperando tutto lo spazio.
A dir la verità e senza saperlo che lo aveva già fatto menniti una cosa del genere, avevo creato un pcb con i componenti necessari per caricare il boot su chip vergini.
Quindi se non ci dovesse entrare neanche con il boot snello provo diretto a caricarlo senza boot, l'unica pecca è che non potrò programmarlo direttamente ma lo dovrò fare con il pcb creato.



Grazie uwefed sei un amico... XD  XD  XD in compenso ci saranno tante domande.... XD


Sicuramente con i byte che ho usato io per fare due cagatine voi ci avreste fatto alzare uno shuttle, ma chi la dura la vince e prima o poi lo farò alzare anche io!

testato

Si, poi anche programmare il micro con icsp. Usando la 1.x lo fai direttamente dalla IDE. Altrimenti devi mettere mano ad avrdude.
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

baghyyy

Allora, tutto perfetto ho alleggerito alcune librerie commentando delle funzioni che non mi interessavano ed ho caricato l'ultimo boot.
Devo dire che l'ultimo boot è davvero la metà della metà della metà dei precedenti!
Grazie a tutti...

Go Up