Go Down

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

menniti



Qui ci vuole una bella tabella con versione ISP, versione IDE, versione Compiler, bps, funziona sì/no altrimenti mi tocca rileggere gli ultimi 20 interventi e ricominciare con le domande scassanoci


La cosa è semplicissima, lo sketch ISP da usare è quello ufficiale allegato al'IDE 1.0.1, che è quello che ti avevo allegato, se parliamo di articoli/guide da pubblicare, se non altro per non creare confusione alle persone con versioni non ufficialmente supportate dall'Arduino Team.

IDE 0022 velocità sketch ISP 19200
IDE 0023 velocità sketch ISP 19200
IDE 1.0  non funziona indipendentemente dalla toolchain, eventualmente usare la versione patchata proposta da Leo a 19200.
IDE 1.0.1 velocità sketch ISP 9600

Perfetto, questo sì che è un quadretto chiaro  :* :smiley-mr-green:
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

@astro:
ho letto male, sottigliezze grammaticali che ti sfuggono quando leggi di corsa

@tutti:
adesso che ho un po' di tempo spiego con calma (stamani ero di fretta, dovevo accompagnare mia moglie a fare un esame, siamo stati via diverse ore).
Vorrei dire la mia sulla questione sketch ArduinoISP. Non pensiate che stia dando contro ad astrobeed, d'altronde questo thread parla di WINDOWS mentre io opero su LINUX, quindi ci sta che ci sia qualcosa di differente fra i 2 mondi.
Stamattina, con la toolchain Atmel nuova nuova (toolchain Atmel, quindi avr-gcc 4.5.1 Gnu con patch Atmel) ho provato a compilare lo sketch ArduinoISP allegato all'IDE 0022. Risultato: NON FUNZIONA.
A 19200 bps, cioè la velocità di serie, dà errori di "protocol error, failed to write to flash ecc..".
A 9600 non va, è fuori sincronia.

Con lo sketch che ho allegato, che ho chiamato ArduinoISP2, va perfettamente a 19200.

Quindi con la nuova toolchain Atmel, almeno su Linux, lo sketch ArduinoISP non si compila correttamente mentre lo sketch ArduinoISP2 compila e lavora perfettamente. Quindi io metterei una discriminante anche sulla versione della toolchain che si usa: con la 4.3.x l'ArduinoISP va, con la 4.5 no.

PS:
@mike:
ArduinoISP2: che cos'è?
E' lo sketch ArduinoISP dell'IDE 1.0.1 con il bugfix #860 (che era per l'ArduinoISP distribuito con la 1.0)

astrobeed


Stamattina, con la toolchain Atmel nuova nuova (toolchain Atmel, quindi avr-gcc 4.5.1 Gnu con patch Atmel) ho provato a compilare lo sketch ArduinoISP allegato all'IDE 0022. Risultato: NON FUNZIONA.


Forse non sono stato chiaro, anche sotto Windows il vecchio sketch isp non funziona se compilato con una release del compilatore più recente.

Quote

A 9600 non va, è fuori sincronia.


A 9600, con IDE precedente alla 1.0.1, non può funzionare perché l'IDE dialoga a 19200 ed ovviamente se lo sketch dialoga a 9600 non si capiscono  :)

Quote

mentre lo sketch ArduinoISP2 compila e lavora perfettamente. Quindi io metterei una discriminante anche sulla versione della toolchain che si usa: con


Ci tengo a sottolineare che lo sketch ISP allegato alla 1.0.1 funziona perfettamente sia con la 00022-23 (19200) che la 1.0.1 (9600), mentre non funziona con la 1.0, ma con questa sicuramente il problema è nel buffer overflow della seriale che si risolve con la patch che hai applicato alla ISP2.
Speriamo che con la 1.0.1 definitiva diano la ISP patchata riportando la velocità a 19200.

Scientia potentia est

leo72



Stamattina, con la toolchain Atmel nuova nuova (toolchain Atmel, quindi avr-gcc 4.5.1 Gnu con patch Atmel) ho provato a compilare lo sketch ArduinoISP allegato all'IDE 0022. Risultato: NON FUNZIONA.


Forse non sono stato chiaro, anche sotto Windows il vecchio sketch isp non funziona se compilato con una release del compilatore più recente.

Scusami, ma già fatico a ricordare le versioni di tutti i compilatori che ho provato su Linux, figurarsi di un SO che non uso  ;)

Quote

Quote

A 9600 non va, è fuori sincronia.


A 9600, con IDE precedente alla 1.0.1, non può funzionare perché l'IDE dialoga a 19200 ed ovviamente se lo sketch dialoga a 9600 non si capiscono  :)

Sì, ovvio. Lo avevo messo solo per conferma della cosa.

Quote

Quote

mentre lo sketch ArduinoISP2 compila e lavora perfettamente. Quindi io metterei una discriminante anche sulla versione della toolchain che si usa: con


Ci tengo a sottolineare che lo sketch ISP allegato alla 1.0.1 funziona perfettamente sia con la 00022-23 (19200) che la 1.0.1 (9600), mentre non funziona con la 1.0, ma con questa sicuramente il problema è nel buffer overflow della seriale che si risolve con la patch che hai applicato alla ISP2.
Speriamo che con la 1.0.1 definitiva diano la ISP patchata riportando la velocità a 19200.

Ma se il problema è nel buffer, il mio ArduinoISP2 dovrebbe lavorare anche sulla 1.0 senza problemi.

Resta il fatto che la cosa è sempre un calvario, secondo il mio modestissimo punto di vista.

astrobeed


Ma se il problema è nel buffer, il mio ArduinoISP2 dovrebbe lavorare anche sulla 1.0 senza problemi.


Infatti sotto Windows funziona quindi dovrebbe funzionare anche sotto Linux, quello che non funziona con la 1.0 è la versione non modificata allegata con la 1.0.1 .

Quote

Resta il fatto che la cosa è sempre un calvario, secondo il mio modestissimo punto di vista.


Perfettamente d'accordo, non a caso ho consigliato a Michele di attenersi solo alle versioni ufficiali supportate dall'Arduino Team per eventuali guide/articoli, almeno se non va sappiamo con chi prendercela  :D
Scientia potentia est

menniti

Ma infatti per questo sto facendo casino, non possiamo diffondere una tecnica sotto forma di notizia (ebbene sì :smiley-mr-green:) con dubbi sul suo funzionamento, né possiamo fornire alternative non ufficiali, se non siamo assolutamente certi, dopo tante prove fatte da tanti di noi, in quanto ci esporremmo a magre figure (non mi sto attribuendo il maiestatis, come più di qualcuno sa, nei limiti delle mie possibilità ho dato e darò ai Cesari ciò che è loro :)) dopo tante cose buone fatte.
La patch di Astrobeed è stata sufficientemente testata e lo specchietto che ha postato oggi e le prove che cercherò di fare stasera mi daranno il responso definitivo sulla strada da intraprendere.
Ciò detto, se Leo et altri potessero darmi ragionevoli garanzie, potrei (sempre col suo permesso) mettere a disposizione il suo AISP2 per la 1.0 in ambiente Windows, con riserva di possibili malfunzionamenti; ma se queste garanzie non ci sono non ne parlo.
Mi servirebbe uno sketch (formato .pde) da 120Kb (NON oltre, va sul 1284 e deve lasciare un po' di fash libera) che non faccia altro alla fine che blinkarmi tre led in sequenza, a sola dimostrazoine che lo sketch è stato compilato caricato ed è funzionante; mi serve massimo per domattina; quello usato da Astro è un suo lavoro ufficiale e non è giustamente utilizzabile, lui ha chiaramente detto di essere incasinato fino a fine settimana, ed io non sono in grado di mettere in piedi una bestia di array che occupi memoria a secchi: chi mi aiuta?
Io intanto inizio a montare la bancarella per i test :smiley-mr-green:
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


Mi servirebbe uno sketch (formato .pde) da 120Kb (NON oltre, va sul 1284 e deve lasciare un po' di fash libera) che non faccia altro alla fine che blinkarmi tre led in sequenza,


Lo sketch di test è quasi pronto, fa molto di più del semplice blink, in pratica usa quasi tutte le periferiche, esegue vari calcoli complessi con i float utilizzando quasi tutte le funzioni matematiche avanzate, e occupa 100 k sotto forma di vari array posti nella flash, il tutto compilato occupa quasi 110k.
Scientia potentia est

leo72

L'ArduinoISP2 puoi anche prenderlo, io l'ho provato con un Tiny85 ed ha funzionato, Astro ha confermato che funziona quindi dovrebbe andare. Solo ti chiedo di prelevare quello allegato a questo post, lo stesso identico dell'altro con in più l'aggiunta di una riga di commento allo sketch in modo da dare la giusta gratificazione a questo povero, umile, ignorante utente  :smiley-sweat:

menniti



Mi servirebbe uno sketch (formato .pde) da 120Kb (NON oltre, va sul 1284 e deve lasciare un po' di fash libera) che non faccia altro alla fine che blinkarmi tre led in sequenza,


Lo sketch di test è quasi pronto, fa molto di più del semplice blink, in pratica usa quasi tutte le periferiche, esegue vari calcoli complessi con i float utilizzando quasi tutte le funzioni matematiche avanzate, e occupa 100 k sotto forma di vari array posti nella flash, il tutto compilato occupa quasi 110k.


Ottimo, mi ero sinceramente pentito di avertelo chiesto perché so quanto sei incasinato questa settimana, ecco perché avevo "aperto" la richiesta, allora va benissimo così, anzi molto di più!
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

menniti


L'ArduinoISP2 puoi anche prenderlo, io l'ho provato con un Tiny85 ed ha funzionato, Astro ha confermato che funziona quindi dovrebbe andare. Solo ti chiedo di prelevare quello allegato a questo post, lo stesso identico dell'altro con in più l'aggiunta di una riga di commento allo sketch in modo da dare la giusta gratificazione a questo povero, umile, ignorante utente  :smiley-sweat:


naturalmente Leo, l'altro non lo avevo nemmeno scaricato, e comunque se non l'avessi messa tu la riga l'avrei fatto io, come in altre occasioni (il plurale non è un errore di calcolo ;))
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

menniti

#325
Mar 29, 2012, 08:30 am Last Edit: Mar 29, 2012, 09:10 am by Michele Menniti Reason: 1
Notizie:
1 - La versione di Leo ha funzionato al primo colpo con la mia 0022, ho inviato con successo uno sketch al 4313
2 - La versione ufficiale invece mi dà errore già in fase di compilazione:
Code: [Select]
ArduinoISP101.cpp: In function 'void spi_init()':
ArduinoISP101.cpp:192:3: error: 'SPCR' was not declared in this scope
ArduinoISP101.cpp:193:5: error: 'SPSR' was not declared in this scope
ArduinoISP101.cpp:194:5: error: 'SPDR' was not declared in this scope
ArduinoISP101.cpp: In function 'void spi_wait()':
ArduinoISP101.cpp:200:12: error: 'SPSR' was not declared in this scope
ArduinoISP101.cpp:200:25: error: 'SPIF' was not declared in this scope
ArduinoISP101.cpp: In function 'uint8_t spi_send(uint8_t)':
ArduinoISP101.cpp:205:3: error: 'SPDR' was not declared in this scope
ArduinoISP101.cpp: In function 'void start_pmode()':
ArduinoISP101.cpp:290:11: error: 'SS' was not declared in this scope
ArduinoISP101.cpp:292:11: error: 'SCK' was not declared in this scope
ArduinoISP101.cpp:297:11: error: 'MISO' was not declared in this scope
ArduinoISP101.cpp:298:11: error: 'MOSI' was not declared in this scope
ArduinoISP101.cpp: In function 'void end_pmode()':
ArduinoISP101.cpp:304:11: error: 'MISO' was not declared in this scope
ArduinoISP101.cpp:305:11: error: 'MOSI' was not declared in this scope
ArduinoISP101.cpp:306:11: error: 'SCK' was not declared in this scope
ArduinoISP101.cpp:307:11: error: 'SS' was not declared in this scope

non riesco a capire quali differenze ci siano tra i due sketch: anche nella versione di leo ci sono queste variabili e non sono dichiarate all'inizio, ma purtroppo non riesco ad andare oltre con l'analisi

EDIT: non chiedetemi come e perché ma ora funziona; nelle varie prove ho voluto sperimentare l'AVRDUDE originale della toolchain; già all'upload di ArduinoISP esce:
Code: [Select]
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

Mi basavo sull'affermazione di BB che diceva d'aver visto tra i sorgenti di AVRDUDE il file Arduino.h; quindi sembra fondamentale l'operazione di recupero del vecchio avrdude.exe suggerita da Astrobeed nei vari passaggi di aggiornamento. Aggiungo che la presenza dell'AVRDUDE.CONF nella cartella "bin" è assolutamente ininfluente.
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


Notizie:
1 - La versione di Leo ha funzionato al primo colpo con la mia 0022, ho inviato con successo uno sketch al 4313
2 - La versione ufficiale invece mi dà errore già in fase di compilazione:


Quell'errore sembra dovuto alla mancanza di  #include "pins_arduino.h" , ho provato a scaricare il file che avevo allegato e compilarlo, non mi da nessun errore.
Sei sicuro di aver preso il file giusto ?
Per sicurezza te lo riallego.

Scientia potentia est

menniti

Scusa Astro, stavo editando il mio post, ma ogni tanto la mia connessione lavora ad 1 bit/ora; è scritto tutto su. Continuo a fare prove per capire cosa è successo, ma non mi pare di vedere cose strane :smiley-roll-sweat:
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

Quote
Mi basavo sull'affermazione di BB che diceva d'aver visto tra i sorgenti di AVRDUDE il file Arduino.h; quindi sembra fondamentale l'operazione di recupero del vecchio avrdude.exe suggerita da Astrobeed nei vari passaggi di aggiornamento.

io mi riferivo alla possibilità di avrdude di riconoscere arduino come programmatore con il suo nome, non ad altro.

menniti


Quote
Mi basavo sull'affermazione di BB che diceva d'aver visto tra i sorgenti di AVRDUDE il file Arduino.h; quindi sembra fondamentale l'operazione di recupero del vecchio avrdude.exe suggerita da Astrobeed nei vari passaggi di aggiornamento.

io mi riferivo alla possibilità di avrdude di riconoscere arduino come programmatore con il suo nome, non ad altro.

Bonjour BB XD
Non era un'accusa :~; nei post precedenti ho scritto, e l'ho fatto sul serio, di aver riletto l'intero Topic, per documentarmi, visto che, ormai è ufficiale (ma vi tengo nascosta la notizia più importante :D), su questa cosa tirerò fuori un articolo per Elettronica In. Ho preso un casino di "appunti", li ho riorganizzati e studiati per farmi le idee chiare e per approfondire qualche punto non chiaro per me; tra questo c'era quel breve scambio tra te e Astro su questa cosa dell'AVRDUDE; poiché, consigliato da tutti, ho scelto di seguire la strada meno invasiva possibile, riguardo l'operazione di aggiornamento, ho cercato di eliminare dalla discussione ogni modifica che non fosse indispensabile; quindi ho fatto la prova con avrdude.exe originale della toolchain, se avesse funzionato avrei evitato il passaggio in cui Astro dice di copiare quello della vecchia versione e usarlo al posto del nuovo; invece mi dà errore e se per farlo funzionare occorre fare operazioni aggiuntive non conviene. Stesso discorso applicato alla questione dell'ISP, la nuova versione originale funziona con 0022-23-1.0.1 ma non con la 1.0; Leo ha applicato una patch e la sua versione, che però non è ufficiale, funziona anche con la 1.0 a 9600 baud. Quindi io proporrò di adottare la nuova 1.0.1 (spiegando che comunque è una r.c. e non ancora una versione definitiva), ma a quelli che stanno bene con la 1.0 "fornirò" la versione di Leo, come patch. La cosa ha una sua logica.
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