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

Generalmente quando compare un errore del tipo "multiple definition of `__vector_26'" significa solamente che si stanno usando più definizioni delle stesse routine di gestione dei timer o degli interrupt ad essi associati all'interno dello stesso codice (mi sono imbattutto in problemi simili nello sviluppo della swRTC). Ciò significa che la toolchain Atmel definisce dei vettori di interrupt che poi sono ripetuti all'interno delle librerie di Arduino. La cosa che mi viene da pensare è che il core di Arduino sia stato sviluppato sulla base di una precedente toolchain Atmel oppure sulla toolchain di Gnu e che quindi non tenga conto di eventuali modifiche apportate in un secondo tempo. Oppure ancora che la libreria seriale della 1.0 sia stata modificata rispetto a quella della versione 002x.
Bisognerebbe vedere nel file HardwareSerial.cpp alla riga 190 cosa viene chiamato.

Ragazzi, posso solo dirvi che io ho fatto prove di compilazione sulla 0022 (con successivo upload su una scheda basata su ATmega2560) senza problemi e Astro invece ha provato 0023-1.0-1.0.1-rc1; non so analizzare il problema ma non può essere di carattere "generale".
La domanda è stupida e non dovrei fartela, ma non saprei cosa altro dire: sicuro di aver seguito alla lettera le istruzioni? Mentre scrivevo l'articolo più volte ho commesso delle piccole fesserie, errori senza pietà! Se leggi il link al sito di Open Elettronics c'è un utente che ha scritto di avere difficoltà con una sua board 1284P, riguardo la comunicazione seriale ma non ha problemi di compilazione mentre tutto funziona sulla sua UNO (anche se parla dei suoi sketch); chiaro che il problema non è generale.

Testato:
mi da errore sia con board 2560 che 1280, su ide1.0 originale, no modifiche di nessun tipo

L'errore è relativo alla ridefinizione di un interrupt, non è possibile perché il programma è perfettamente funzionante e si compila sia con l'IDE 0022-23 che 1.0 senza alcun problema.

capiamoci, se questo errore si conferma si rischia di creare sketch non compatibili con chi semplicemente usa sw ufficiali, ho appeno rifatto la prova, cosa che potete fare anche voi, basta installare la ide 1.0 e basta, senza toccare nulla:

scrivo il tutto in stile mennitico :slight_smile:

0- Win7-64bit
1- apro ide1.0 (senza modifica alcuna, scaricato ed installato)
2- scelgo Tools-Board-Mega 2560
3- serial Com3 (alla quale e' connessa una Arduino UNO, ma ripeto io non carico, faccio solo VERIFY)
4- scarico test_80k: http://www.open-electronics.org/wp-content/uploads/2012/04/test_80k.rar
5- lo decomprimo su desktop e lascio tutto come e' (config .h e def.h li lascio li' dentro, mica devo copiarli altrove ?)
6- faccio open dall'ide di test_80k.pde
7- PREMO VERIFY

core.a(HardwareSerial.cpp.o): In function `__vector_26':
D:\Backup\PERSONALE\Varie\Elettronica\Arduino\arduino-1.0\hardware\arduino\cores\arduino/HardwareSerial.cpp:190: multiple definition of `__vector_26'
test_80k.cpp.o:C:\Users\win7\AppData\Local\Temp\build4974502073951907759.tmp/test_80k.cpp:3342: first defined here

Scusa, hai provato lo sketch senza aggiornare la toolchain e tutto il resto del bordello che ho scritto?

yes, ho solo provato quello sketch, quello sketch e' scritto solo per chi aggiorna la toolchain ?
i problemi della toolchain (schetch grandi) si manifestano anche solo compilando ?
io ho capito che se si carica uno skwetch grande con la versione originale dell'ide esso compila e lo carica sul micro, pero' poi in fase di funzionamento si grippa :slight_smile:
a me invece quell'errore esce subito, al tasto verify

Testato:
a me invece quell'errore esce subito, al tasto verify

Mi sono appena ricordato che quello sketch l'ho fatto su misura per Michele, lui usa solo la 0022-0023, con la 1.0 non si può compilare perché il software di base, MultiWii 1.9, che ho utilizzato per ottenere il megasketch non è compatibile con l'IDE 1.0.

ottimo, allora il mio test e' servito a qualcosa :slight_smile:

"UNO e' lieto di poter servire"

Il nuovo ide per quello che mi ricordo ha file header del core che vengono copiati nel codice in compilazione o addirittura dentro la dir del sorgente, in particolare mi ricordo che si tratta di un file dove ci sono parecchie definizioni può darsi che ci sia una definizione di macro già definita.

Il core avrebbe bisogno di un'aggionamento, c'è l'uso di macro deprecate in particolare SIGNAL e poi c'è sempre la questione del /util/delay e quindi non c'è da meravigliarsi se con la toolchain di atmel o meno qualcosa vada storta. Posso confermare che la toolchain di atmel rispetta gli standard e anche per questo è da considerare ottima e fuor di dubbio e se c'è qualcosa che non va basta spiegare il problema per dire se il problema è nella toolchain o in altro.

Il codice di astro io non l'ho potuto provare perchè mi mancano le librerie estese. Nota che posso usare il core ma non quelle estese perchè non uso la compilazione Arduino stile ma quella classica, linkando staticamente, quindi per me ci vorrebbe un codice basato su le avrlibc.

Ciao.

astrobeed:

Testato:
a me invece quell'errore esce subito, al tasto verify

Mi sono appena ricordato che quello sketch l'ho fatto su misura per Michele, lui usa solo la 0022-0023, con la 1.0 non si può compilare perché il software di base, MultiWii 1.9, che ho utilizzato per ottenere il megasketch non è compatibile con l'IDE 1.0.

ahi :~

In allegato lo sketch di test per l'IDE 1.x, al contrario dell'altro questo non è compilabile con versioni inferiori perché scritto esplicitamente per le nuove versioni.
Come il precedente usa come base MultiWii, una dev della 1.9 adatta all'IDE 1.x, che oltre ad essere un programma abbastanza complesso usa praticamente tutte le risorse hardware di Arduino con tanto di accesso diretto ai registri hardware per ottimizzare l'uso delle periferiche, ovvero un ottimo banco di test per la toolchain.

TEST_80K_ide_1_0.rar (50.7 KB)

astrobeed:
In allegato lo sketch di test per l'IDE 1.x, al contrario dell'altro questo non è compilabile con versioni inferiori perché scritto esplicitamente per le nuove versioni.
Come il precedente usa come base MultiWii, una dev della 1.9 adatta all'IDE 1.x, che oltre ad essere un programma abbastanza complesso usa praticamente tutte le risorse hardware di Arduino con tanto di accesso diretto ai registri hardware per ottimizzare l'uso delle periferiche, ovvero un ottimo banco di test per la toolchain.

Grazie XD Aggiorno i blog XD

se lo aggiorni direttamente, senza aspettare miei test ufficiali, e' inutile che li faccia :smiley:

Testato:
se lo aggiorni direttamente, senza aspettare miei test ufficiali, e' inutile che li faccia :smiley:

Scusa, hai perfettamente ragione, ma ho pensato che visto che il tuo test ufficiale ha ricordato che la versione esistente funzionasse solo con 0022/23, Astro ora abbia fatto la prova direttamente con la 1.0, come da esplicita richiesta. Ho pensato anche che avresti impiegato almeno due giorni a smaltire l'abboffata di ieri ed intanto poteva uscire qualcuno sui blog dicendo "a me non funziona!", così l'abbiamo preceduto :grin:. Però ben venga la tua conferma, se vuoi fare il test alla Testato :wink:

Sto seguendo il discorso sulla toolchain, ma mi sono un po' perso.
Volevo sapere se nella versione 1.0.1, al momento alla rc2, sarà inserita l'ultima chain disponibile o una precedente "stabile"?

PaoloP:
Sto seguendo il discorso sulla toolchain, ma mi sono un po' perso.
Volevo sapere se nella versione 1.0.1, al momento alla rc2, sarà inserita l'ultima chain disponibile o una precedente "stabile"?

Nella 1.0.1 definitiva ci sarà avr-gcc 4.3 per tutti e tre i sistemi operativi supportati, ovvero una versione molto vecchia, che poi è la stessa presente negli IDE precedenti.

[quote author=Michele Menniti link=topic=96976.msg755273#msg755273 date=1334059559]ben venga la tua conferma, se vuoi fare il test alla Testato :wink:
[/quote]
Confermo il corretto Verify dello sketch fornito da Astro su IDE 1.0 (orginale), Board 2560 e Board 1280
:slight_smile:

astrobeed:

PaoloP:
Sto seguendo il discorso sulla toolchain, ma mi sono un po' perso.
Volevo sapere se nella versione 1.0.1, al momento alla rc2, sarà inserita l'ultima chain disponibile o una precedente "stabile"?

Nella 1.0.1 definitiva ci sarà avr-gcc 4.3 per tutti e tre i sistemi operativi supportati, ovvero una versione molto vecchia, che poi è la stessa presente negli IDE precedenti.

Aggiungo che, con molta probabilità, il motivo di tale scelta è da giustificare col fatto che la 4.3.x dovrebbe essere l'unica versione del compilatore funzionante con i tre principali sistemi operativi, quindi nessun problema di instabilità, ma solo di compatibilità; l'ultima versione, la 4.5.1, addottata in questo aggiornamento "privato", funziona correttamente solo con Windows, da qui il nome del Topic.

@ Testato: grande! tnx! :slight_smile:

[quote author=Michele Menniti link=topic=96976.msg755798#msg755798 date=1334086184]

astrobeed:
Nella 1.0.1 definitiva ci sarà avr-gcc 4.3 per tutti e tre i sistemi operativi supportati, ovvero una versione molto vecchia, che poi è la stessa presente negli IDE precedenti.

Aggiungo che, con molta probabilità, il motivo di tale scelta è da giustificare col fatto che la 4.3.x dovrebbe essere l'unica versione del compilatore funzionante con i tre principali sistemi operativi, quindi nessun problema di instabilità, ma solo di compatibilità; l'ultima versione, la 4.5.1, addottata in questo aggiornamento "privato", funziona correttamente solo con Windows, da qui il nome del Topic.[/quote]

Grazie del chiarimento.

Ho letto da altri vostri commenti su altri post che è uscito il compilatore avr-gcc 4.7.0 (http://gcc.gnu.org/)
Riparte la giostra dei test con altre 30 pagine di topic? :smiley: