Go Down

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

leo72


pensavo fosse un problema solo di Linux, ma a questo punto è un problema dello sketch ISP e non del compilatore o del S.O.

Ma se con la 4.3.5 compila correttamente e con la 4.5.1 senza patch no, se lo sketch è lo stesso non dovrebbe essere un problema di compilatore? Forse è stato modificato qualcosa che introduce dei delay aggiuntivi che fanno saltare i tempi, tempi magari che l'autore dell'ArduinoISP aveva trovato empiricamente all'epoca essere corretti con la velocità a 19200. Forse è una somma di bug, del compilatore e dello sketch.

Quote

Fino a fgià 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  :)

Verissimo! 25 kB impiegano 1 minuto tondo tondo per essere trasferiti su un Atmega... Pazzesco...


Non credo visto che Banzi ha detto che hanno risolto, e se la soluzione è questa...

Il fix è nel changelog della 1.0.1. C'è scritto che l'ArduinoISP adesso lavora nuovamente ma con velocità a 9600. Quindi è una soluzione decisa dai Piani Alti.

menniti

Allora, ho abbassato da 19200 a 9600 nel setup di ArduinoISP, l'ho caricato nell'UNO, ho provato ad inviare un blink specifico ad un tiny2313, errore; forse ho capito male io. Pur sapendo che il valore nella board virtuale viene ignorato ero andato a cambiarlo ma nemmeno c'è la riga.
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

Ma parli dello sketch ArduinoISP della 0022 o della 1.0?
Il tipo che mi suggerì il fix mi linkò l'ArduinoISP della 1.0. Però non mi parlò di altre modifiche. Bisognerebbe fare un confronto fra lo sketch ArduinoISP 0022 e 1.0 e poi confrontarli con quello della 1.0.1 per vedere se ci sono altre differenze.

astrobeed


Bisognerebbe fare un confronto fra lo sketch ArduinoISP 0022 e 1.0 e poi confrontarli con quello della 1.0.1 per vedere se ci sono altre differenze.


Lo sketch abbinato alla 1.0 è lungo 478 righe, quello con la 1.0.1 è lungo 552 righe, il secondo ha circa 20 righe in più nei commenti di testa, però la differenza totale è di 74 righe, direi che non hanno modificato solo la velocità  :)
Scientia potentia est

leo72


Non credo visto che Banzi ha detto che hanno risolto, e se la soluzione è questa...

Invece lo aveva detto. Mi sembrava di ricordare, ecco qui:

@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 http://code.google.com/p/arduino/issues/list


m



leo72


Lo sketch abbinato alla 1.0 è lungo 478 righe, quello con la 1.0.1 è lungo 552 righe, il secondo ha circa 20 righe in più nei commenti di testa, però la differenza totale è di 74 righe, direi che non hanno modificato solo la velocità  :)

Adesso mi metto a fare un confronto, tanto non ho molto da fare fino alle 2:00....  :smiley-roll-blue:

EDIT:
non appena ritrovo il link per scaricarla... qualcuno ce l'ha sottomano?  :smiley-sweat:
Trovato

leo72

Da una prima occhiata, demanda alla libreria SPI.h la spedizione dei dati mentre prima si appoggiava a funzioni interne. Non so se dipende solo da questo.

menniti

Leo, mi quoti e continui a leggere male quello che scrivo? :smiley-sweat:
Io ho affermato come te che Banzi ha detto.... rileggi bene cosa ho scritto (diciamo che manca una virgola ma il significato resta quello :)) e intendevo dire che se la soluzione è quella è presto fatto; invece non va, forse perché io sto usando la 0022, e comunque per ora la 1.0 non la installo, quindi se fine settimana Astro trova la soluzione, ed è applicabile anche alla 0022 (lui ha detto che non la suppoprta più, quindi mi deve andare a c... che le modifiche siano compatibili :smiley-mr-green:), tutto bene, altrimenti no buono e pazienza :)
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

Sì ti ho letto male. Ma sono un po' rinco, lo sai  XD
Comunque lo sketch ArduinoISP allegato all'IDE 1.0 non è quello dell'IDE 1.0.1, è diverso e forse funziona come ha detto astro non solo per la velocità a 9600. Quindi se stai usando la 0022 tienitela pure stretta (come faccio io) perché con la 1.0 non cambia assolutamente niente. Il 16 aprile Max ha promesso l'IDE nuova, e con essa ci sarà lo sketch ArduinoISP nuovo. Vedremo.

skaxxo

grazie astro e michele per la guida...

...giusto per sapere, quali sono i benefici di questa mod? scrivetelo nel primo post! grazie ;)
Arduino, MODs e DIY: blackstufflabs.com

brainbooster

#280
Mar 27, 2012, 10:36 pm Last Edit: Mar 27, 2012, 10:50 pm by BrainBooster Reason: 1
astro ma dici che basterebbe ricalibrare l'oscillatore interno all'avvio dello sketch per farlo tornare a funzionare a velocità regolare?
edit:
@Leo non avevo capito il tuo post perchè non avevo associato... non ho una memoria cosi buona :)

leo72

Mi sono messo a spulciare nella IssueList dell'Arduino. Ecco l'issue #860:
Quote

Reported by project member wes...@gmail.com, Mar 15, 2012

The ArduinoISP sketch, widely used for burning bootloaders into AVRs, does not work when compiled using the 1.0 IDE.  Failures occur during the attempts to "Program Page", when a largish block of data is sent at once.

This was suspected of being due to the new structure of the HWSerial library (receive buffer size decreased from 128 to 64), and was eventually tracked (thanks to Brian Cook) to the the heartbeat function used to pulse an LED during the idle loop.  This does a delay(40), which means that even though it only happens when the sketch is "idle" or in between commands, a badly timed command  exceeding 80bytes (at 19200bps) can overflow the buffer before processing starts.

The attached patch implements a replacement for delay that immediately aborts if serial traffic is detected.  It also changes readbytes() to wait for the number of bytes requested, instead of assuming that they are already buffered at interrupt level.


Traduco:
Quote

Segnalato da membro del progetto wes...@gmail.com, Mar 15, 2012 (wes... a me pare che si stia parlando di Westgm, l'autore dell'Optifix)

Lo sketch ArduinoISP, usato diffusamento per caricare i bootloader negli AVR, non funziona quando viene compilato usando l'IDE 1.0. Fallisce durante il tentativo "Program Page", quando un grosso blocco di dati è spedito in un'unica volta.

Parrebbe che la cosa derivi dalla nuova struttura della libreria HWSerial (la dimensione del buffer di ricezione è stata ridotta da 128 a 64), ed è stata rilevata in un secondo tempo (grazie a Brian Cook) dalla funzione heartbeat usata per far lampeggiare un LED durante il ciclo di attesa. Questa funzione esegue un delay(40), il che significa che anche se ciò succede quando lo sketch è "inattivo" o nel mezzo di 2 comandi, un comando mal temporizzato eccedente 80 byte (a 19200 bps) può mandare in overflow il buffer prima che il processo inizi.

La patch allegata inserisce un sostituto per il delay che lo fa fermare immediatamente in presenza di traffico seriale. Cambia anche readbytes() per attendere il numero di byte richiesti invece di assumere che sono già stati bufferizzati a livello di interrupt.


Nel link trovate infatti allegata una patch. Sarebbe da provare (chi ne ha modo, io non posso al momento).

EDIT:
aggiungo: Type DEFECT - Status ACCEPTED - Priority HIGH

menniti


Il 16 aprile Max ha promesso l'IDE nuova, e con essa ci sarà lo sketch ArduinoISP nuovo. Vedremo.

Speriamo sia compatibile anche con la 0022 :smiley-sweat:

grazie astro e michele per la guida...
...giusto per sapere, quali sono i benefici di questa mod? scrivetelo nel primo post! grazie ;)

ci stiamo lavorando, abbi un po' di pazienza, intanto dai un'occhiata al Topic, come ho fatto io stasera, ME LO SONO RILETTO TUTTO, DISCUSSIONI SUI S.O. COMPRESE, in fondo sono solo 283 post :smiley-yell:, però visto a rileggere come escono le magagne? ;)
@ Leo: ovvio lì si riferisce tutto all'1.0, altrimenti la farei io la prova, ma lì non c'è il file da scaricare ma un html, contenende le righe variate, se ho capito bene.
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


@ Leo: ovvio lì si riferisce tutto all'1.0, altrimenti la farei io la prova, ma lì non c'è il file da scaricare ma un html, contenende le righe variate, se ho capito bene.

E' una patch, ossia è un file che contiene delle direttive per un programma che si chiama... "patch" (che fantasia, eh) che toglie al file segnato in alto le righe che iniziano con i segni "-" ed aggiunge quelle che iniziano con i segni "+" a partire dalle righe specificate. Non so su Windows se c'è negli strumenti di sistema un tool come patch, in Linux c'è per cui a me basterebbe dare in pasto quel file al suddetto. Altrimenti ti metti con pazienza a fare le modifiche allo sketch, si tratta di trovare la funzione heartbeat e di cambiarla aggiungendo la variabile e modificando il ciclo di attesa,.

testato

ma la versione funzionante di ArduinoISP presente nella mia guida vi funziona ?
quando esce la 1.01 ufficiale faro' un confronto sulla velocita'. Se la "mia" e' piu' veloce continuo ad usarla, altrimenti si passa all'ufficiale ed aggiorno la guida
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up