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

Con l'IDE 1.0.3 liscio e core tiny 0015 mi esce lo stesso errore --> Arduino Forum
Ho cambiato la toolchain come da topic e adesso compila.
Non ho ancora provato l'upload.

PaoloP:
Con l'IDE 1.0.3 liscio e core tiny 0015 mi esce lo stesso errore --> Arduino Forum
Ho cambiato la toolchain come da topic e adesso compila.
Non ho ancora provato l'upload.

Uh... allora la toolchain Avr inclusa nell'IDE è particolarmente vecchiotta.
Cmq se hai risolto così, bene.

Paolo, fammi capire, tu stai scrivendo sul Topic con il quale abbiamo spiegato come aggiornare la toolchain e per risolvere il problema sei andato a seguire le istruzioni del Forum Internazionale? :disappointed_relieved:

No. ho cercato su Google informazioni sul 4313.
Google mi ha rimandato alla discussione sul forum internazionale che suggeriva l'aggiornamento della toolchain.
Allora sono venuto qui e ho seguito la vostra procedura.
Poi ho compilato il tutto e effettuato l'upload su 4313 tramite ISP.

L'unico passaggio che ho saltato è la pach della cartella "include". Ho scaricato gli header della nuova toolchain Atmel e pare funzioni. (non ho provato a compilare sulla UNO)

Segnalo che è uscita la nuova Toolchain 3.4.2 anche per Windows. Link in prima pagina.

Grazie. (http://arduino.cc/forum/index.php/topic,164571.0.html) :wink:

Domanda x Astro: ma la patch che hai scritto tu all'epoca è sempre valida, anche per la versione 1.0.4-1.0.5 o questo passaggio non è più necessario? Così dopo aggiorno il primo post col link di Paolo (Grazie!)

Michele, il link è sempre lo stesso (latestversion), è l'atmel che cambia il riferimento ogni volta. Non c'è bisogno di modifiche da parte nostra.
Il link che ho messo io è alla discussione di Leo (per Linux) da cui ho visto che era stata aggiornata anche la versione Windows.
Il grazie era per la segnalazione indiretta nata da quella discussione e mi sembrava giusto citarla.

PaoloP:
Michele, il link è sempre lo stesso (latestversion), è l'atmel che cambia il riferimento ogni volta. Non c'è bisogno di modifiche da parte nostra.
Il link che ho messo io è alla discussione di Leo (per Linux) da cui ho visto che era stata aggiornata anche la versione Windows.
Il grazie era per la segnalazione indiretta nata da quella discussione e mi sembrava giusto citarla.

ah, ok, perché in precedenza avevamo dovuto cambiarlo in quanto ci arrivavamo per vie traverse, non ricordavo più, bene, meglio così. Resta il dubbio che ho espresso, perché non ricordo più il motivo per il quale Astro aveva dovuto preparare quella patch, e volevo capire se in queste ultime versioni la cosa potesse essere stata superata o se comunque la patch è semrpe utilizzabile a prescindere dagli aggiornamenti ATMEL (altra info da mettere in via "definitiva" nel primo post).

P.S.: il mio grazie era per te :slight_smile:

Se è come su Linux, c'è da editare il filw Wiring.h del core Tiny e non del core principale di Arduino. Però se non cambi core Tiny, quella modifica resta per cui io passando dalla 3.4.1 alla 3.4.2 non ho dovuto aggiornare nulla.
Ripeto, se è come su Linux.

Confermo, ho aggiornato in Windows la 1.04, tutto funziona :smiley:

La patch serviva per rendere la toolchain compatibile con Arduino, non so se con l'ultima toolchain serve ancora, a quanto pare no, dovrei provarla per verificare eventuali problemi però in questo periodo sono straimpicciato e non ho tempo per farlo.

Ok, seguita alla lettera la guida sotto Windows ... ci sono dei problemi ...

  1. mi sembra che la sostituzione della "include" sia ancora necessaria. Non facendola non mi riconosce il tipo "prog_uint16_t"

  2. Comunque mi tira fuori degli errori che la 1.0.4 NON modificata non mi da ... in allegato l'output "verbose" della compilazione ...

A naso ... direi che c'è qualche problema con la progmem ... :frowning:

Qualcuno sa da cosa può derivare ? Grazie,

Guglielmo

Compilazioni.txt (47.1 KB)

bhe, dice che "__c" deve essere const... cerca da dove arriva questa variabile e aggiungici const davanti. dovrebbe bastare...

lesto:
bhe, dice che "__c" deve essere const... cerca da dove arriva questa variabile e aggiungici const davanti. dovrebbe bastare...

Si, certo, il punto è che con l'IDE originale compila fino alla fine senza problemi (con dei warning) ... mentre con la nuova ToolChain da errore ... vorrei capire il perché ... non risolvere semplicemente modificando il sorgente :wink:

Guglielmo

il punto è che fino ad ora il compilatore accettava variabili non const da mettere nella progmem.
Però dato che la progmem è modificabile sono in fase di flash, questo è un errore; dunque ora le variabili devono essere const, in modo da obbligarti a fare attenzione a questa cosa.

probabilmente __C è una variabile di comodo in cui viene piazzata la stringa da "progmemmare", quindi va cambiata anch'essa (che però essendo const... c'è da rivedere il codice)

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=871000

Lesto ...
... preso questo codice :

#include <avr/pgmspace.h>

void setup() {
 
 Serial.println(F("TEST")); 

}

void loop() {

}

... mi da già errore :

C:\arduino-1.0.4-new\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=104 -IC:\arduino-1.0.4-new\hardware\arduino\cores\arduino -IC:\arduino-1.0.4-new\hardware\arduino\variants\standard C:\Users\gpb01\AppData\Local\Temp\build7822850351586823830.tmp\sketch_may08a.cpp -o C:\Users\gpb01\AppData\Local\Temp\build7822850351586823830.tmp\sketch_may08a.cpp.o 
sketch_may08a.ino: In function 'void setup()':
sketch_may08a.ino:5:17: error: variable '__c' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

... quindi ... il problema sembra essere nella pgmspace e non nel mio codice. Oppure ... ho sbagliato io qualche cosa nel sostituire la ToolChain, ma ho rifatto tutti i passaggi svariate volte ed ottengo sempre lo stesso risultato ... :frowning:

Guglielmo

Edit : la macro F è definita : #define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal))) ... quindi cosa altro deve essere "const" ?

Guglielmo, scusa ma mi sono perso...., hai seguito alla lettera tutte le istruzioni del primo post, compresa l'installazione della patch di Astro, ed ottieni l'errore che hai detto, OPPURE hai fatto tutto senza la patch?

ok, a naso direi che ora la TUA variabile è const (quindi corretto) va vene puntata da __c che NON è const... ora il punto è capire da dove arriva questa --c, io mi apsetto arrivi dalle librerie arduino.

Ho dovuto installare la patch perché se non la installi ... da errori anche su banalità del tipo : "prog_uint16_t".

Quindi, con la patch installata, mi da problemi con la macro F() :frowning:

Guglielmo

lesto:
ok, a naso direi che ora la TUA variabile è const (quindi corretto) va vene puntata da __c che NON è const... ora il punto è capire da dove arriva questa --c, io mi apsetto arrivi dalle librerie arduino.

Occhio, non e la MIA variabile, la definizione della macro F() è quella STANDARD che trovi nella Wstring.h standard di Arduino !!!

Ma a voi non da problemi con la pgmspace ?

Guglielmo