Go Down

Topic: [WIN] Aggiornam. compilatore IDE 0022-0023-1.0 all'ULTIMA VERSIONE ATMEL (Read 176932 times) previous topic - next topic

brainbooster

ma cosa stavi provando a compilare? arduino.h è nel core standard di arduino (1.0 e successivi) e difficile che l'ide non lo trovi.

menniti

#256
Mar 27, 2012, 04:17 pm Last Edit: Mar 27, 2012, 04:34 pm by Michele Menniti Reason: 1
@ Tutti: sto rileggendo l'intero Topic e trovo alcune cose da chiarire:

Riprendo questa affermazione di Leo, non avendo ancora fatto prove in tal senso:
Quote
Con le versioni successive alla 4.3.5 lo sketch ArduinoISP viene compilato NON funzionante.

Se non sbaglio l'IDE 1.0 originale si basa sullo stesso compilatore della 0022, quindi il noto problema ArduinoISP/IDE 1.0 non dovrebbe essere legato al compilatore, allora che significa ciò che dice Leo?
Domanda: qualcuno ha testato ArduinoISP con la 0022 e la toolchain aggiornata? Esiste la possibilità che con l'aggiornamento non funzioni nemmeno sulla 0022?  :smiley-roll-sweat:

x Astro: in questo post hai confermato a BB che si poteva usare AVRDUDE nuovo in quanto contenente le info per Arduino; ma nelle ultime istruzioni hai comunque consigliato di recuperare AVRDUDE originale, capisco male io o ci sono nuovi elementi?
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

astrobeed


ma nelle ultime istruzioni hai comunque consigliato di recuperare AVRDUDE originale, capisco male io o ci sono nuovi elementi?


Ho consigliato di usare l'avrdude allegato all'IDE perché sicuramente funzionante e tutti lo hanno disponibile.
Scientia potentia est

menniti



ma nelle ultime istruzioni hai comunque consigliato di recuperare AVRDUDE originale, capisco male io o ci sono nuovi elementi?


Ho consigliato di usare l'avrdude allegato all'IDE perché sicuramente funzionante e tutti lo hanno disponibile.

quindi "lasciamo" quello dell'IDE? ;)
Hai feedback sulla questione che ho posto sopra o Leo parlava solo di Linux, che tu sappia? Ovviamente è importante che almeno sulla 0022 ArduinoISP continui a funzionare tranquillamente. :)
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

brainbooster

#259
Mar 27, 2012, 05:18 pm Last Edit: Mar 27, 2012, 05:23 pm by BrainBooster Reason: 1
@Menniti di che ti preoccupi? :) non ho inserito esplosivi o antrace dentro avrdude  ]:D non ti farà esplodere il pc e non contagierà tutti i micro che inserisci  :smiley-yell: :smiley-yell:
..e poi se stai seguendo le istruzioni di astrobeed dovresti lavorare con una copia e non con l'originale.

menniti

Sto solo riorganizzando le informazioni, non mi piace lasciare cose non risolte o non certe; che paura devo avere, io la tua versione l'ho usata, ti sei scordato che ho programmato con successo il mio tint2313 con signature FFFFFF? $)
Però ora voglio fare una cosa ordinata: parto per gradi con differenti cartelle, faccio i test poi implemento nuovi elementi, ma mi servono dati certi, tutto qui.
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html


astrobeed


Hai feedback sulla questione che ho posto sopra o Leo parlava solo di Linux, che tu sappia? Ovviamente è importante che almeno sulla 0022 ArduinoISP continui a funzionare tranquillamente. :)


Leo parla per Linux e loro continuano a fare esperimenti di ricompilazioni provando di tutto di più, il problema di AvrIsp riguarda solo Linux e non Windows.
Per correttezza ti dico che l'AvrIsp non l'ho provato perché non lo uso come sistema di programmazione, ma non vedo nessun motivo per cui non deve funzionare.
Scientia potentia est

menniti

OK, tanto devo fare una prova di installazione, ci metto niente a verificarlo. A dopo.
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

leo72

@Menniti:
se compilando con l'IDE 1.0 ti esce fuori l'errore sull'arduino.h vuol dire che stai usando uno sketch che richiama una libreria non compatibile con l'IDE 1.0

@tutti:
Per dovere di cronaca vi riporto il mio intero periodo, non la singola frase:
Quote
Con le versioni successive alla 4.3.5 lo sketch ArduinoISP viene compilato NON funzionante. Con le versioni 4.5.x ci sono i problemi legati al famoso bug del delay, che non funziona per via di una errata inizializzazione dei registri se non si mette una dichiarazione di una variabile globale all'inizio dello sketch. Sulle versioni 4.6.x c'è il problema che alcune lib del core che contengono diciture non più riconosciute (non mi ricordo esattamente quali ma mi pare che siano dei tipi di dati) e vanno modificate per farle funzionare, poi con le versioni ancora più recenti compare il problema di dover aggiornare anche binutils-avr, ed anch'esso ha i suoi czz e mazzi.

L'affermazione non si riferisce tanto a Linux o Windows quanto al tipo di toolchain usata.
Se usate la toolchain 4.3.5 non patchata c'è per tutti il bug del limite dei 64 kB, se ne è discusso ampiamente. E' proprio da un post di Mike che la questione è venuta fuori.

Quindi Linux o Windows o Mac, uno sketch che indirizza dati oltre quella soglia è destinato a fallire.
Se per risolvere tale problema si usa una versione successiva, compaiono altri bug, e questo vale solo per Linux per un semplice motivo: perché il team di Arduino ha finora distribuito la toolchain  allegata all'IDE solo con la versione Windows. Se scaricate una toolchain Avr aggiornata e la usate così cosm'è, senza patch Atmel, anche voi utenti Windows avete gli stessi problemi che ho io perché i bug che ho nel tempo segnalato su questo forum riguardano il sorgente stesso della toolchain, quindi che si compili su Linux o Windows i bug restano. Le patch Atmel correggono proprio questi bug, ad esempio l'errore del delay che ho citato.

L'unica soluzione CERTA a tutti questi problema è la strada che ha seguito Astro, è la strada che ha seguito Bingo660 su AvrFreaks, è la strada che alla fine ho seguito anche io: scaricarsi i sorgenti della toolchain, applicare le patch di Atmel e compilare quella toolchain. Alla fine viene fuori una versione basata su avr-gcc 4.5.1, quindi non recentissima, ma funzionante.
L'ArduinoISP con versioni più recenti della toolchain continua a non funzionare, segno evidente che le patch Atmel sono al momento indispensabili.

Per dovere di cronaca dico che se ho tempo domani provo la toolchain basata su avr-gcc 4.7.0, e vediamo se risolve tutti i problemi riguardanti i bug menzionati senza bisogno delle patch di Atmel.


menniti

Dunque, purtroppo devo confermare, dopo aver fatto moltissime prove oggi pomeriggio, che ha ragione Leo: ArduinoISP non viene compilato correttamente ed infatti ho fatto la procedura per la nuova toolchain, quindi ho inviato ArduinoISP ad Arduino UNO, non sono più riuscito a fare un burn bootloader o ad inviare uno sketch; ho rimesso avr originale, ho ricaricato ArduinoISP, ho rifatto la procedura Toolchain e le operazioni ISP sono andate tutte a buon fine.
Dal mio punto di vista questa è una limitazione non da poco, ma bisogna considerare che la questione è nata per superare, come ben ricorda Leo, il problema degli sketch over64K, e quello sembra un problema risolto efficacemente. Personalmente non ho mezzi per fare quel tipo di test ma è ovvio che mi fido di quelli fatti da Astrobeed.
Ma il problema è: perché succede questa cosa? e perché succede solo (almeno da quanto sappiamo) con ArduinoISP e non con altri sketch, più o meno complessi. Sarebbe ora però assolutamente importante che qualcuno provasse a caricare (ovviamente su Arduino direttamente) qualche sketch importante, magari con diverse librerie, per capire se non ci sono altri problemi, diversamente tutta l'operazione diventerebbe un problema. Astro ha testato un suo firmware molto corposo, ma ora vorrei saperne di più da lui, sulla questione.
Sulla 1.0 non so che dire, a me l'errore l'ha dato compilando il blink, però ripento per l'ennesima volta che non gli ho dedicato nemmeno un minuto.
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

leo72


:) e quindi  ? :smiley-roll-sweat:

E quindi cosa?  XD
MI hanno chiamato in causa, ho spiegato in maniera più chiara il perché di una frase che era stata ripresa da un mio precedente intervento.  :P

@Mike:
il fix per l'ArduinoISP è stato proposto più di 1 mese fa nel famoso thread che aprii sul forum internazionale dove mi lamentavo del fatto che con le ultime versioni della toolchain lo sketch non compilava più. All'epoca un utente rispose che lui aveva risolto abbasando la velocità a 9600 baud rispetto alle 19200 emulate dallo sketch.
Questa soluzione è stata poi fatta propria dal team perché l'IDE 1.0.1 contiene lo stesso identico fix per l'ArduinoISP.
Questo mi fa pensare che qualcosa nel codice compilato con le versioni più recenti faccia saltare i timing interni, e dato che ho ancora in gola i grattacapi che mi ha fatto ingoiare Avr-cdc, posso pensare che le temporizzazioni software, se saltano di pochissimo fanno saltare tutti i sincronismi. Ricordo che lo stesso astro mi confermò che l'ArduinoISP compilato con la toolchain contenuta in Ubuntu 11.10 all'oscilloscopio mostrava dei tempi non corretti.

astrobeed


posso pensare che le temporizzazioni software, se saltano di pochissimo fanno saltare tutti i sincronismi. Ricordo che lo stesso astro mi confermò che l'ArduinoISP compilato con la toolchain contenuta in Ubuntu 11.10 all'oscilloscopio mostrava dei tempi non corretti.


Vero, la velocità della seriale risultava sbagliata di circa il 7-8%, quanto basta per creare seri problemi al trasferimento dati, pensavo fosse un problema solo di Linux, ma a questo punto è un problema dello sketch ISP e non del compilatore o del S.O.
Fino a fine settimana non posso dedicare tempo a questa cosa, però poi ci metto mano e vediamo di risolvere pure questa cosa una volta per tutte senza dover penalizzare la velocità di trasferimento, già a 19200 ci vuole un sacco di tempo per caricare un hex corposo, a 9600 potete pure lasciare tutto e andare a prendervi un caffè nel frattempo  :)
Scientia potentia est

menniti

Quindi secondo voi è sufficiente che io modifichi ArduinoISP abbassando l'unico 19200 presente a 9600 e poi funziona tutto?
Diciamo che il problema sarebbe relativo, ma questo significherebbe allo stesso modo che nessun software potrebbe gestire una velocità maggiore di 9600? o ci sono problemi "peggiori"? Non credo visto che Banzi ha detto che hanno risolto, e se la soluzione è questa...
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

Go Up