Go Down

Topic: problemi programmi che occupano più di 128k di memoria flash (Read 1 time) previous topic - next topic

volcane

Salve!

Vi siete accorti che gli attuali IDE hanno problemi con programmi maggiori di 128Kb ovvero di 64Kword?

Il problema sembrerebbe risiedere nell' uso del compilatore avr-gcc-4.3.2.exe usato dagli attuali IDE, la versione 4.3.2 risale al 2008 qundo i micro Atmel non superavano i 64kb di memoria.

Fonte della notizia il blog di elettronicain, che propone anhe una soluzione.

pelletta

La soluzione è comparsa prima qua  :)
Menniti e Astrobeed ne sanno qualcosa...

Michele Menniti


La soluzione è comparsa prima qua  :)
Menniti e Astrobeed ne sanno qualcosa...

Beh, basta leggere in fondo al blog, c'è la firma degli autori ;) ;) ;)
L'articolo completo, c'è una citazione anche per Leo & BB, in quanto co-Autori di una delle versioni di ArduinoISP fornite per il download, sarà presentato sulla RIvista che sta per uscire.
E' stato anche tradotto in Inglese, ed lì ci sono anche alcuni interventi  :)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

astrobeed


La soluzione è comparsa prima qua  :)


Infatti è una cosa che è iniziata sul forum in seguito ad una segnalazione relativa al ATmega 2560 e relativi problemi di compilazione sketch di grosse dimensioni.
La soluzione è stata prima presentata sul forum e solo dopo è diventata un articolo per elettronica IN, e blog collegati, a firma mia e di Menniti  :)

Michele Menniti



La soluzione è comparsa prima qua  :)


Infatti è una cosa che è iniziata sul forum in seguito ad una segnalazione relativa al ATmega 2560 e relativi problemi di compilazione sketch di grosse dimensioni.
La soluzione è stata prima presentata sul forum e solo dopo è diventata un articolo per elettronica IN, e blog collegati, a firma mia e di Menniti  :)

Buongiorno collega :~ :smiley-red: :*  :smiley-mr-green:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

uwefed


leo72


perché, non siete colleghi?  8) ;) 8) ;) 8) ;) 8)
Ciao Uwe

Stamani Mike credo soffra un po' della sindrome di Calimero  ;) XD

Michele Menniti



perché, non siete colleghi?  8) ;) 8) ;) 8) ;) 8)
Ciao Uwe

Stamani Mike credo soffra un po' della sindrome di Calimero  ;) XD

un po'? ]:D

Uwe: certo che siamo colleghi, come Don Chisciotte e Sancio Panza  :smiley-mr-green:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

volcane

Salve!

Perche' gli sviluppatori di Arduino non riportano la correzione che ha risolto il problema rilasciando una nuova versione dell' ambiente IDE? Come mai leggo sempre piu' spesso di librerie che vanno bene con IDE 0.22 ma non funzionano sulla 1.0, cosa ha portato di nuovo questa 1.0?

leo72


Salve!

Perche' gli sviluppatori di Arduino non riportano la correzione che ha risolto il problema rilasciando una nuova versione dell' ambiente IDE? Come mai leggo sempre piu' spesso di librerie che vanno bene con IDE 0.22 ma non funzionano sulla 1.0, cosa ha portato di nuovo questa 1.0?

Va fatto un distinguo. Gli strumenti che servono per la compilazione dei firmware non sono sviluppati dal team di Arduino ma dal progetto Gnu, che rilascia il compilatore avr-gcc e le librerie e gli strumenti appositi. Essi ricadono tutti sotto il nome di toolchain Avr. Poi c'è da differenziare il caso di Linux e quello di Windows. Fino alla versione 1.0, l'IDE per Windows conteneva una toolchain modificata con delle patch rilasciate da Atmel stessa per correggere diversi bug della toolchain Avr di Gnu. Ma la versione per Linux dell'IDE non aveva la toolchain integrata. Gli utenti Linux dovevano scaricarsi la toolchain dai repository della propria distribuzione, dove però spesso trovavano la toolchain Avr e non quella con le patch Atmel, ritrovandosi quindi con un prodotto meno compatibile.

Atmel ha poi aggiornato molti micro, sfondando la barriera dei 128 kB di Flash (Atmega2560). E qui è nato il problema perché la toolchain non è stata aggiornata, continuando a portarsi dietro il problema del bug dei 64 kB, sia su Windows che su Linux. La cosa curiosa è che l'Arduino MEGA2560 è in vendita da 1 anno, ma nessuno ha detto che in realtà con gli strumenti di Arduino tale chip non poteva essere utilizzo nella sua interezza.

Solo ultimamente Gnu ha rilasciato la versione 4.7 del compilatore che dovrebbe risolvere nativamente (senza bisogno di patch) il problema della barriera dei 64Kword di memoria indirizzabile.

astrobeed


Fino alla versione 1.0, l'IDE per Windows conteneva una toolchain modificata con delle patch rilasciate da Atmel stessa per correggere diversi bug della toolchain Avr di Gnu.


Stai facendo un pochino di confusione, le versioni per Windows di Arduino contengono il compilatore avr-gcc versione 4.3.2 ufficiale di gnu.org, cioè senza nessuna patch di Atmel.
Dalla versione 1.0.1 di Arduino è stato inserito il compilatore 4.3.2 anche per Linux e MAC in modo da avere la stessa toolchain su tutti e tre i sistemi operativi.
La toolchain di Atmel non viene utilizzata ufficialmente da Arduino, è l'adattamento che ho realizzato io ad usarla.


leo72

Grazie per la precisione, non ricordavo esattamente non usando né Windows né l'IDE 1.0.1.


OT:
hai letto delle mie peripezie sui tentativi di usare il nuovo compilatore avr-gcc 4.7? Ho pubblicato alcune cose sul thread riguardante la toolchain Atmel e Linux. Ci sono dei problemi con alcune costanti ed un problema che è venuto fuori durante la compilazione del tuo sketch da 80K. Se le costanti le ho sistemate, l'errore che ricevo durante la compilazione credo sia dovuto a qualche parametro che l'IDE aggiunge di suo, forse quando si accorge che lo sketch è grande.

astrobeed


hai letto delle mie peripezie sui tentativi di usare il nuovo compilatore avr-gcc 4.7?


Si però non so che dirti, in questo momento non ho sottomano nessun pc con sopra Linux per fare delle prove, ho solo un paio di macchine virtuali WmWare con installata sopra la Debian che uso per sviluppo su sistemi embedded e non ho alcuna intenzione di "inquinarle" con Arduino  :D




Go Up