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

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

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

Se non erro la F() è stata introdotta dopo l'IDE 1.0, fino a quella release era tutto ok, ovviamente devo provare in prima persona e verificare cosa tocca aggiungere/patchare per rendere il tutto compatibile con l'attuale versione dell'IDE.
Il problema è che adesso, e almeno per altri 15 giorni, non ho il tempo per farlo, sono strastrastrastraimpicciato con il lavoro :slight_smile:

astrobeed:
...
Il problema è che adesso, e almeno per altri 15 giorni, non ho il tempo per farlo, sono strastrastrastraimpicciato con il lavoro :slight_smile:

Nessun problema Astro, ci mancherebbe, anzi, sempre GRAZIE :slight_smile:

Se invece qualcun'altro provasse il piccolo programmino che ho messo e mi confermasse l'errore ... sarei più tranquillo ... di aver fatto il tutto correttamente :grin: Grazie ...

Guglielmo

Un passo avanti ...
... la pgmspace.h che sta nella toolchain è diversa da quella che è di base nell'IDE e da quella della patch di Astro.

Hanno deprecato una infinità di definizioni e modificato varie cose all'interno :frowning:

Provando a mettere quella nuova al posto di quella vecchia ... il piccolo programmino di test si compila ... anche se con dei warning piuttosto sospetti (... ho idea che in realtà non metta il testo in progmem), ma programmi più complessi danno errori nelle definizioni di variabili che usano tipi come "prog_uint16_t" ... che sono stati, appunto, deprecati :frowning:

Un bel casino insomma ...

Guglielmo

Edit : L'allegato pdf mostra le differenze estratte con "DeltaWalker" ...

differenze.rar (103 KB)

gpb01:
Un bel casino insomma ...

Già...
Pensa che molti sono stati presi dal panico a seguito del cambiamento dall'IDE 0.22 alla nuove versioni 1.x per aver rinominato e modificato il file WCostant.h in Arduino.h.
Immagina quando, cambiando toolchain, gli venissero errori che tu chiami banalità. :grin: pgmspace? Che è? Si mangia?? :roll_eyes:

Comunque le mie conoscenze sono troppo limitate per aiutarvi in un discorso di questo genere.
Credo che per le correzioni bisognerà aspettare che tra 15/20 gg Astro si liberi. 8)

C:\arduino-1.0.4\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\hardware\arduino\cores\arduino -IC:\arduino-1.0.4\hardware\arduino\variants\standard C:\arduino-1.0.4\hardware\arduino\cores\arduino\Print.cpp -o C:\Users\gpb01\AppData\Local\Temp\build3177612874521486560.tmp\Print.cpp.o
C:\arduino-1.0.4\hardware\arduino\cores\arduino\Print.cpp: In member function 'size_t Print::print(const __FlashStringHelper*)':
C:\arduino-1.0.4\hardware\arduino\cores\arduino\Print.cpp:44: warning: 'progmem' attribute ignored

@gpb01
Ti faccio notare l'ultima riga dove dice che alla riga 44 di Print.cpp progmem è stato ignorato.
Si tratta del risultato della compilazione che hai chiamato "CON L'IDE ORIGINALE"

Ciao.

MauroTec:
@gpb01
Ti faccio notare l'ultima riga dove dice che alla riga 44 di Print.cpp progmem è stato ignorato.
Si tratta del risultato della compilazione che hai chiamato "CON L'IDE ORIGINALE"
...

Ok, un warning (... e su codice standard Arduino, la Print.cpp) e non una raffica di errori bloccanti.

Ripeto, provate a compilare un qualche cosa che faccia uso della pgmspace.h e vedrete (bastano le quattro righe che ho messo qualche post fa) ... ]:smiley:

Guglielmo

se c'è un warning vuiol dire chequalcosa non viene fatto per bene, ma c'è una forzatura. Quindi nulla di strano che un aggiornamento del compilatore rompa definitivamente la compatibilità

comunquenel link che ho postato trovi la spiegazione e soluzione, anche se sinceramente io ci ho capito poco, non sapendoche combina arduino.

Ecco appunto, il warning può essere cosa di poco conto, ma nel caso specifico avere ignorato un attributo che marca ciò che dovrà andare nella flash non è di poco conto, ancora di più se ciò accade in quello che si crede funzionare correttamente.

Per questo ho postato, perchè forse come dice lesto qualcosa non viene fatto bene, per di più viene da ciò che si pensa funzionare.

Per il resto io sono fuori da ogni test, continuerò ad usare la vecchia versione Atmel con gcc-4.5.1 che non ha mai dato problemi e anche perchè non c'è modo di compilare con le patch di atmel 3.4.2. Cioè le patch devono essere patchate, già accaduto con la 4.5.1, ma in tal caso le mie competenze mi hanno permesso di sistemare le cose, mentre con la 3.4.2 mi sono perso e al massimo sono riuscito a compilare binutils senza errori, poi avr-gcc mi ha fatto perdere la pasienza e ho mollato.

Ciao.

Per quel poco che conta, con la toolchain Atmel 3.4.2 precompilata io su Linux non ho avuto nessun problema né ho dovuto sistemare nessun file.
Confermo però che la compilazione dei sorgenti è alquanto problematica e non l'ho mai fatta, neanche per la precedente 3.4.1. :sweat_smile:

leo72:
Per quel poco che conta, con la toolchain Atmel 3.4.2 precompilata io su Linux non ho avuto nessun problema ne' ho dovuto sistemare nessun file.
Confermo pero' che la compilazione dei sorgenti e' alquanto problematica e non l'ho mai fatta, neanche per la precedente 3.4.1. :sweat_smile:

Vuoi dire che a te i moduli con progmem.h sotto linux compilano senza alcun problema ? :slight_smile:

Se è così ... uso la VM per installarmi Ubuntu e faccio le prove su quello ... :wink:

Guglielmo

lesto:
...
comunquenel link che ho postato trovi la spiegazione e soluzione, anche se sinceramente io ci ho capito poco, non sapendoche combina arduino.

Purtroppo NO, la soluzione che propongono (la prima, quella della modifica a pgmspace.h) ... è già implementata nella nuova release e NON risolve.

Lesto, è ovvio che è un problema di compatibilità con la nuova versione del gcc ... per questo stiamo cercando di capire cosa è cambiato e come fare a far funzionare la cosa sotto Win (perché, da quanto sembrerebbe, Leo non ha questi problemi sotto Linux).

Guglielmo

P.S : Oh, poi, onestamente .... IO LAVORO SU MAC ... quindi dei casini sotto Win me ne frega fino ad un certo punto .... mi piaceva l'idea di provarlo, ma se devo perderci più di X ore ... non se ne parla :slight_smile:

@gugliemo:
a me lo sketch che hai messo nel tuo replay #582 compila perfettamente per una Arduino UNO (1516 byte se non ricordo male).

leo72:
@gugliemo:
a me lo sketch che hai messo nel tuo replay #582 compila perfettamente per una Arduino UNO (1516 byte se non ricordo male).

OTTIMO, allora, appena ho un momento, faccio la stessa prova sotto Ubuntu. Tu che distribuzione usi (... tanto, visto che la devo scaricare, una vale l'altra e scarico un ambiente come il tuo, così da avere risultati confrontabili) ???

Guglielmo

Io uso Arch Linux, non è proprio una distribuzione per iniziare però :wink:
Va configurata manualmente.

Ubuntu ultimamente non mi piace per la sua interfaccia grafica Unity

leo72:
Io uso Arch Linux, non è proprio una distribuzione per iniziare però :wink:
Va configurata manualmente.
...

Urca :astonished: ... e me ne sono accorto ... XD XD XD

Ok, l'interfaccia grafica non sarà un gran che, ma ... proseguo con Ubuntu ... :grin:

32 o 64 bit ? 12.04 o 13.04 ? Grazie anticipatamente per i suggerimenti :slight_smile:

Guglielmo

Se proprio scegli Ubuntu, perché non Xubuntu basata su XFCE o Kubuntu basata su KDE?
Comunque usa l'ultima versione, la 13.04.
Sui 64 bit, questi ormai sono un must sugli ultimi PC.

leo72:
Se proprio scegli Ubuntu, perché non Xubuntu basata su XFCE o Kubuntu basata su KDE?
Comunque usa l'ultima versione, la 13.04.
Sui 64 bit, questi ormai sono un must sugli ultimi PC.

M'hai convinto ... ho dei ricordi di KDE e quindi ... vada per Kubuntu 13.04 64 bit :wink:

Creo la partizione VMware e lo installo ... spero di ricordarmi ancora qualche cosa di Linux XD

Guglielmo