[WIN] Aggiornam. compilatore IDE 0022-0023-1.0 all'ULTIMA VERSIONE ATMEL

astrobeed:
Ci siamo quasi, per la prima volta sono riuscito a compilare senza errori, e con eseguibile funzionante, MultiWii 1.9 con la toolchain Atmel.
MultiWii ha la caratteristica di accedere direttamente ai registri macchina scavalcando Wiring, è un buon banco di prova per la toolchain.

Ottimo! quindi ora siamo in trepida attesa XD

Se non vengono fuori altri problemi mi sa tanto che già domani metto online i file modificati e la procedura.

@astro ma il semplice -F non funziona, invece -R lo richiami come il -F ma funge :grin:
ho aggiornato anche il usage con la nuova opzione ed il relativo warning. (gli automatismi non mi piacciono, perferisco che data la pericolosità dalla cosa, l'utente debba richiamarla volontariamente e manualmente).

[quote author=Michele Menniti link=topic=96976.msg729806#msg729806 date=1332098231]se metti mano all'IDE però sappi che dovresti farlo sia sulla 0022/3 che sulla 1.0.
[/quote]
Voto per la 1.0.

PaoloP:

[quote author=Michele Menniti link=topic=96976.msg729806#msg729806 date=1332098231]se metti mano all'IDE però sappi che dovresti farlo sia sulla 0022/3 che sulla 1.0.

Voto per la 1.0.
[/quote]
Paolo, dove lo hai visto questo referendum o sondaggio? :fearful: questo è il nostro male, uno si mette a disposizione gratuitamente per il bene della comunità e subito spuntano i paletti dei propri interessi personali. Fammi indovinare, scommetto che stai usando la 1.0 per le tue cose :stuck_out_tongue:

Dai, domani metto il link per scaricare avrdude 5.11.1 e se ci riesco vi dico come modificare il file preferences.txt per attivare la funzione -R in caso serva (si spera mai) :slight_smile:

Paolo, dove lo hai visto questo referendum o sondaggio? :fearful: questo è il nostro male, uno si mette a disposizione gratuitamente per il bene della comunità e subito spuntano i paletti dei propri interessi personali. Fammi indovinare, scommetto che stai usando la 1.0 per le tue cose :stuck_out_tongue:
[/quote]
Si uso la 1.0 e tutto quello che ho fatto fino adesso, anche se veramente poco :cold_sweat:, è tutto condiviso nel forum. :stuck_out_tongue: XD

commento generale..

Arduino 1.0 è la piattaforma su cui lavorare. Fare migliorie sulla 22/23 è tempo perso perché va in obsolescenza, non la supportiamo più e non sarà più compatibile con tutti i prodotti nuovi arduino che escono ora (per esempio la Leonardo)

m

@Massimo ma tanto nel mio caso la miglioria riguarda solo avrdude, la retrocompatibilità è un effetto collaterale benaccetto :slight_smile: da chi per motivi vari, ancora oggi usa la 022/023 o un fork di quei branch

Commento personale: ciò che dici sarà vero fra qualche mese, quando tutte le librerie saranno state convertite per l'uso con Arduino 1.0.
Allo stato attuale c'è ancora molto software che non lo è stato, per cui tanti utenti che volenti o nolenti continuano ad usare il ramo 002x.

leo72:

[quote author=Massimo Banzi link=topic=96976.msg730357#msg730357 date=1332145517]
commento generale..

Arduino 1.0 è la piattaforma su cui lavorare. Fare migliorie sulla 22/23 è tempo perso perché va in obsolescenza, non la supportiamo più e non sarà più compatibile con tutti i prodotti nuovi arduino che escono ora (per esempio la Leonardo)

m

Commento personale: ciò che dici sarà vero fra qualche mese, quando tutte le librerie saranno state convertite per l'uso con Arduino 1.0.
Allo stato attuale c'è ancora molto software che non lo è stato, per cui tanti utenti che volenti o nolenti continuano ad usare il ramo 002x.
[/quote]
quoto e aggiungo: la nuova versione IDE si è portata appresso problemi gravi e non resi noti da nessuno, a mio sapere, scoperti solo perché un utente ha scritto un firmware di 75K che gli manda in crash Arduino Mega2560. Da qui il chiarimento di Astrobeed sul fatto che il compilatore in dotazione all'IDE, qualsiasi versione, è del 2008 e non contempla la gestione di memoria flash superiore a 64K; vero che non viene più supportata ed aggiornata la 0022/0023, ma non mi sembra che in questo mese e passa circa, da quanto abbiamo rilevato e segnalato il problema ci si sia mossi o almeno si sia trovata una soluzione, perlomeno per l'IDE 1.0. Se oggi questo utente risolverà il problema è perché Astrobeed ha studiato, approntato, testato e svelato il metodo per sostituire il compilatore con la versione del 2010, che dovrebbe lavorare fino a 128K; e se in futuro tutti i possessori di mega2560 potranno sfruttare appieno le caratteristiche deel loro Arduino sarà perché il solito noioso Astrobeed sta per pubblicare le istruzioni per implementare l'ultima versione del compilatore ATMEL, che permetterà di gestire i fatidici 256K.
Necessaria premessa, in cui Vi prego di non rilevare eventuali sarcasmi, è solo il mio strano modo di scrivere, per dire che il sottoscritto ha felicemente realizzato il suo primo lavoro serio, con BEN 8K di flash occupata, quindi, ad essere egoista, non me ne può fregar di meno dei problemi di compilatori over 64, resto sulla 0022 e forse passo per comodità stand-alone alla 0023, ma, senza offesa, non mi vado a cercar rogne con una versione che in cambio di pochi fronzoli mi fa perdere la retrocompatibilità e soprattutto non mi fa funzionare ArduinoISP che per me è "lavoro" quotidiano
Figuriamoci se poi vado a pensare all'hardware che, sempre a mia labile memoria doveva farsi vivo a fine anno ed era stato annunciato per certo per febbraio. Ben venga, personalmente prima o poi ammodernerò la mia dotazione attuale, più per stima per Banzi che per reale necessità hobbystica, ma questo sarà fatto solo quando leggerò su questo Forum tanta gente felice di possedere Leonardo o chi altro e una bella versione di IDE funzionante come si deve.

Ecco la prima versione della patch per la toolchain Atmel per l'IDE 0022/0023, per la 1.0 ho ancora dei problemi da risolvere e arriverà più avanti.
La procedura è semplicissima, scaricare dal sito Atmel la toolchain per Windows, eseguire l'installazione, si limita a scompattare i file, e alla fine dovreste trovare tutto in "C:\Programmi\Atmel\AVR Tools\AVR Toolchain" o qualcosa di simile a "C:\Atmel\AVR Tools\AVR Toolchain" se non avete precedentemente installato AvrStudio.
Cancellate, o rinominate, la directory "..\arduino-0023_test\hardware\tools\avr" e al suo posto copiate "..\AVR Toolchain" dopo di che rinominatela come "avr", fatto questo andate in "..\arduino-0023_test\hardware\tools\avr\avr" e cancellate la cartella "include" al suo posto mettete quella contenuta nel file rar allegato.
Dopo questi semplice passi potete cominciare a lavorare con il nuovo compilatore avr-gcc 4.5.1 release Atmel.
Fatemi sapere se ci sono ulteriori problemi da correggere.

p.s.
Il tutto è da ritenersi sperimentale, fate le prove copiando la vostra installazione dell'IDE in una nuova cartella.

New_include.rar (1.28 MB)

Io ho gli ultimi giorni di fuoco con l'UNI, dopo mi metto volentieri a testare tutto. Grazie!

@astrobeed ho provato con il toolchain atmel modificato da te ma ricevo comunque l'errore su delay ed altro...

In file included from C:\Documents and Settings\Administrator\Documenti\arduino-1.0\hardware\arduino\cores\arduino/Platform.h:9:0,
from C:\Documents and Settings\Administrator\Documenti\arduino-1.0\hardware\arduino\cores\arduino\CDC.cpp:19:
c:\documents and settings\administrator\documenti\arduino-1.0\hardware\tools\avr\bin../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h: In function 'void _delay_ms(double)':
c:\documents and settings\administrator\documenti\arduino-1.0\hardware\tools\avr\bin../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:149:42: error: 'fabs' was not declared in this scope
c:\documents and settings\administrator\documenti\arduino-1.0\hardware\tools\avr\bin../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:149:43: error: 'ceil' was not declared in this scope
c:\documents and settings\administrator\documenti\arduino-1.0\hardware\tools\avr\bin../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h: In function 'void _delay_us(double)':
c:\documents and settings\administrator\documenti\arduino-1.0\hardware\tools\avr\bin../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:226:42: error: 'fabs' was not declared in this scope
c:\documents and settings\administrator\documenti\arduino-1.0\hardware\tools\avr\bin../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:226:43: error: 'ceil' was not declared in this scope

BrainBooster:
@astrobeed ho provato con il toolchainatmelmodificatoda te ma ricevo comunque l'errore su delay

Stai usando la 1.0

prima versione della patch per la toolchain Atmel per l'IDE 0022/0023, per la 1.0 ho ancora dei problemi da risolvere e arriverà più avanti.

@menniti : avevo chiesto specificamente di mettermi in contatto con la persona che aveva il problema con il codice superiore a 64K. Però questa persona ha preferito non maniferstarsi. E' difficile aiutare chi non si fa aiutare.

C'è una beta della 1.0.1 disponibile ora, sarebbe utile testarla. Ci sarà anche la versione funzionante di ArduinoISP.

La versione finale della 1.0.1 esce il 16 di Aprile perciò queste sono le settimane migliori per dare suggerimenti etc.
Per essere sicuri che un bug non sfugga ma venga effettivamente risolto bisogna aggiungere un bug report qui Google Code Archive - Long-term storage for Google Code Project Hosting.

m

Indipendentemente dalla persona che ha lamentato il bug io l'ho confermato e non è certo un mistero che il compilatore 4.3.2 non va oltre le 64 kword (128 kbyte) o che in caso di dati posti nella flash oltre i 64k ci sono problemi, sono limiti e issue ufficiali di quella versione, e pure della 4.3.3, tocca arrivare alla 4.3.4 per non avere il bug dei 64k per i dati.
C'è pure un bug non ancora risolto di avr-gcc per le EICALL (Extended Indirect Call to Subroutine) oltre i 128 k, questo è il link alla lista ufficiale, non ho ancora avuto modo di verificare se è presente anche nella toolchain Atmel, rammento che è patchata da loro in modo indipendente dallo sviluppo ufficiale di avr-gcc.

ma no, semplicemente subito dopo è stato chiaro che il problema aveva origini note e quindi sarebbe stato inutile mettersi a lavorare sul firmware, tutto qui.

C'è una beta della 1.0.1 disponibile ora, sarebbe utile testarla. Ci sarà anche la versione funzionante di ArduinoISP.

La versione finale della 1.0.1 esce il 16 di Aprile perciò queste sono le settimane migliori per dare suggerimenti etc.
Per essere sicuri che un bug non sfugga ma venga effettivamente risolto bisogna aggiungere un bug report qui Google Code Archive - Long-term storage for Google Code Project Hosting.

Queste sono buone notizie, grazie, utile sarebbe sapere se state implementando l'ultima versione del compilatore AVR, come sta facendo Astrobeed, altrimenti forse, ma queste sono scelte vostre, Vi converrebbe contattarlo per avere il suo prezioso contributo; non ricordo una sola volta che abbia fornito qualcosa al Forum e si sia rivelata bacata, quindi è uno che i test li fa seriamente e poi si avvale di gente come me e leo ed altri, che nel nostro piccolo facciamo le cose altrettanto seriamente.
Grazie della risposta.
m (la firma è uguale ma tu ha la possibilità della "b" io non ho scelta :D)

@ Astro: quindi la 4.3.3 non supera nemmeno il problema dei 64K? Avevo capito di sì, mi basta rifare l'operazione con la 4.3.4, giusto? o devi lavorarci in qualche modo?

ok astro, porto tutto su una 022 e riprovo

No non lo risolve, risolve solo la questione supporto ai nuovi modelli di micro, come il 4313, non inseriti nella versione precedente.
Non esiste una release di WinAvr con il compilatore superiore alla 4.3.3, è un progetto fermo dal 2010, non so se usciranno nuove release e poi si basa sulla versione originale di avr-gcc, quella che sta facendo dannare gli altri con Linux, quindi è meglio che rimane così :smiley:
Spezzo io una lancia a favore dell'Arduino Team, probabilmente sanno benissimo quali sono i problemi delle varie release di avr-gcc, e forse è proprio per questo motivo che sono rimasti con la 4.3.2 che almeno funziona senza particolari intoppi con Arduino ad esclusione della questione MEGA2560.