[Guida] Attivazione C++11 su IDE ARDUINO, VISUAL STUDIO e ATMEL STUDIO

Salve.
Questo e' il mio secondo post, spero di scriverlo nella sezione corretta e in italiano corretto :wink:
Se questa guida vi e' stata utili commentate e se avete suggerimenti o trovate qualche errore non esitate a scriverlo.

Io per motivi derivanti dal mio progetto ho dovuto aggiornare il c++98 alla versione 11 perche' necessitavo di alcune funzionalita' particolari.

Dovremo fare un paio di modifiche alla configurazione dell'ide di arduino e inoltre spieghero' come far funzionare tutto anche per chi usa VISUAL MICRO su visual studio o su atmel studio 6.2

AGGIORNAMENTO DELLA GUIDA SU CONSIGLIO DI astrobeed, GRAZIE ANCORA!!! :wink:

  • Iniziamo scaricando l'ultimissima versione dell'arduino IDE che nel mio caso e' la 1.6.3
    La troverete a questo link: http://www.arduino.cc/en/Main/Software

  • Eseguiamo l'installazione del pacchetto appena scaricato

  • Abilitiamo il c++11 :smiley:
    Apriamo la cartella {arduinoInstallationFolder}\hardware\arduino\avr
    Nel mio caso C:\Program Files (x86)\Arduino\hardware\arduino\avr

  • Modifichiamo il file platform.txt
    Cercate la riga: compiler.cpp.extra_flags=
    E modificatela cosi' compiler.cpp.extra_flags=-std=gnu++11
    Salvate il file e il gioco e' fatto.
    Testate compilando un file qualsiasi con l'ide.... se tutto va ora potrete programmare usando il c++11

E PER CHI HA L"ARDUINO DUE ?? BISOGNA LAVORARE ANCORA!!! NOOOOOOOOOOOOOOOOOOOOO :fearful:

  • Aprite l'ide, come avrete notato manca nella selezione delle schede l'arduino due...
    Aprite il meno Strumenti->Scheda->Boards Manager

  • Selezionate dalla lista Arduino Sam Boards (32-bit Arm Cortex-M3) e installatelo.

  • Chiudete l'ide.
    Aprite la cartella %appdata%\Arduino15\packages\arduino\hardware\sam\1.6.3
    E troverete un altro file platform.txt

  • Modifichiamo il file platform.txt
    Cercate la riga: compiler.cpp.extra_flags=
    E modificatela cosi' compiler.cpp.extra_flags=-std=gnu++11
    Salvate il file e il gioco e' fatto.
    Testate compilando un file qualsiasi con l'ide.... se tutto va ora potrete programmare usando il c++11 anche sulla due

Per far funzionare tutto anche su VISUAL STUDIO e ATMEL STUDIO 6 dovrete installare la versione beta di VISUAL MICRO
Lo trovere in questa pagina Download the Arduino IDE for Visual Studio

Conclusione:
Io ho ho testato e fatto tutto quello che ho scritto nella guida, se qualcosa non funziona dipende solamente da un vostro errore... BUONA FORTUNA
Ringrazio ancora astrobeed!

NOTA PER GLI SVILUPPATORI DELL'IDE:
Per favore abilitate il c++11 direttamente con l'installazione di default

Quale vantaggio si ottiene utilizzando Visual Studio al posto dell'IDE di Arduino ?

Marcustv:
Quale vantaggio si ottiene utilizzando Visual Studio al posto dell'IDE di Arduino ?

Assolutamente nessuno, anzi solo scomodità e si va ad usare una vecchia toolchain con svariati bug, se vuoi un ambiente di lavoro migliore per Arduino usa Atmel Studio con l'addon visual micro.

x m3nax
L'attuale IDE, 1.6.3, usa l'ultima release della toolchain Atmel, pertanto è più che aggiornato come compilatore, poi ci sarebbe sempre la questione che usare il C++ su una piccola mcu 8 bit è volersi fare del male da soli.

astrobeed:
Assolutamente nessuno, anzi solo scomodità e si va ad usare una vecchia toolchain con svariati bug, se vuoi un ambiente di lavoro migliore per Arduino usa Atmel Studio con l'addon visual micro.

Convengo con con te astrobeed. Io ho provato entrambi e la differenza si fa sentire!!! L'atmel studio e' indubbiamente il migliore.
Per completezza ho incluso anche visual studio nella guida.

astrobeed:
L'attuale IDE, 1.6.3, usa l'ultima release della toolchain Atmel, pertanto è più che aggiornato come compilatore.

Si anche se e' la versione piu' aggiornata il supporto del c++11 non e' abilitato...

astrobeed:
Ci sarebbe sempre la questione che usare il C++ su una piccola mcu 8 bit è volersi fare del male da soli.

Anche in questo sono d'accordo con te. Ma rimane il fatto che implementare progetti particolarmente complessi e' piu' semplice con c++ (almeno dal mio punto di vista) che con il c, sopratutto dal punto di vista dell'organizzazione del codice che finirebbe per avere un infinita' di funzioni.
Si, le prestazioni e sopratutto le risorse ne risentono parecchio... Questo e' il prezzo da pagare...

Se necessario o fastidioso saro' felice di togliere la NOTA AGLI SVILUPPATORI

m3nax:
Si anche se e' la versione piu' aggiornata il supporto del c++11 non e' abilitato...

In compenso non ha tutti i bug della vecchia WinAvr, sono molti anni che non viene più aggiornata, tra i vari problemi c'è quello che non è possibile compilare un programma più lungo di 64 kword (128k), o meglio viene compilato però poi non funziona.

astrobeed:
In compenso non ha tutti i bug della vecchia WinAvr, sono molti anni che non viene più aggiornata, tra i vari problemi c'è quello che non è possibile compilare un programma più lungo di 64 kword (128k), o meglio viene compilato però poi non funziona.

Ma davvero? Questa non la sapevo... ???
Grazie della news... Davvero c'e' sempre da imparare! :smiley:

m3nax:
Ma davvero? Questa non la sapevo... ???

Se vuoi qualche info in più, sopratutto su come risolvere il problema che è rimasto tale con gli IDE 1.0.x, risolto solo con le recenti versioni 1.6.x grazie al update della toolchain, leggi questo articolo, che è apparso su Elettronica In a firma mia e del prof. Menniti.

Allora se ho capito bene l'ide arriva gia' aggiornato manca solo di abilitare il supporto per il c++11...
Se e' cosi' faccio un aggiornamento alle informazioni contenute nella guida limitandomi solo a come abilitare il c++11...

m3nax:
Allora se ho capito bene l'ide arriva gia' aggiornato manca solo di abilitare il supporto per il c++11...

Esatto.

Faccio subito le dovute modifiche!!!

astrobeed Grazie ancora... se trovi qualche altro errore fammelo sapere..... ;D