Pages: 1 ... 42 43 [44] 45 46 47   Go Down
Author Topic: [WIN] Aggiornam. compilatore IDE 0022-0023-1.0 all'ULTIMA VERSIONE ATMEL  (Read 35089 times)
0 Members and 1 Guest are viewing this topic.
Cagliari, Italy
Online Online
Tesla Member
***
Karma: 102
Posts: 6540
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Risolto.

Ho aggiunto in WString.h nel core di Arduino per avr
Code: (WString.h)
#define __PROG_TYPES_COMPAT__
prima di
Code:
#include <avr/pgmspace.h>

in modo che risulti
Code:
#define __PROG_TYPES_COMPAT__
#include <avr/pgmspace.h>

In questo modo vengono ripescati i metodi deprecati e non bisogna modificare tutto il core di Arduino.  smiley-mr-green
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10097
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

in teoria se metti la define prima di tutto nel tuo .ino non funziona lo stesso?
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 102
Posts: 6540
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println(F("Test"));
  delay(1000);
}

Compilato su IDE 1.0.5 originale per Arduino UNO
Code:
Dimensione del file binario dello sketch: 2.126 bytes (su un massimo di 32.256 bytes)

Compilato su IDE 1.5.5 originale
Code:
Lo sketch usa 2.050 byte (6%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.
Le variabili globali usano 187 byte (9%) di memoria dinamica, lasciando 1.861 byte liberi per le variabili locali. Il massimo è 2.048 byte.

Compilato su IDE 1.5.5 con TC 3.4.3 per Arduino UNO
Code:
Lo sketch usa 1.866 byte (5%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.
Le variabili globali usano 187 byte (9%) di memoria dinamica, lasciando 1.861 byte liberi per le variabili locali. Il massimo è 2.048 byte.

Interessante... no!!  smiley-mr-green smiley-mr-green

EDIT: provato anche 1.5.5 originale.
« Last Edit: December 08, 2013, 08:49:23 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 102
Posts: 6540
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

in teoria se metti la define prima di tutto nel tuo .ino non funziona lo stesso?

C'è scritto di metterlo prima dell'include... e così ho fatto
Quote
/**
   \ingroup avr_pgmspace
   \typedef prog_char
   \note DEPRECATED

   This typedef is now deprecated because the usage of the __progmem__
   attribute on a type is not supported in GCC. However, the use of the
   __progmem__ attribute on a variable declaration is supported, and this is
   now the recommended usage.

   The typedef is only visible if the macro __PROG_TYPES_COMPAT__
   has been defined before including <avr/pgmspace.h> (either by a
   #define directive, or by a -D compiler option.)

   Type of a "char" object located in flash ROM.
*/
typedef char PROGMEM prog_char;
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 410
Posts: 11973
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Paolo, ciò che scrivi significa che hai trovato la sequenza esatta di operazioni per l'aggiornamento alla nuova toolchain?
Se è così ti spiacerebbe, basandoti sul primo post, implementare la procedura, in modo che sia chiara e fattibile da chiunque, perfino da me? smiley-mr-green
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 102
Posts: 6540
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Domani testo qualche codice più lungo e complesso e ti aggiorno.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 312
Posts: 21604
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Paolo, uno sketch vuoto è un test ma non è IL test. Hai provato con l'esempio WiFiWebServer della libreria WiFi? Quella dà un sacco di problemi, se compili quella sei a posto. smiley-wink
Logged


Switzerland
Online Online
Faraday Member
**
Karma: 81
Posts: 4150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Paolo, uno sketch vuoto è un test ma non è IL test. Hai provato con l'esempio WiFiWebServer della libreria WiFi? Quella dà un sacco di problemi, se compili quella sei a posto. smiley-wink

Leo, con la 3.4.3, a parte un po' di warning del tipo :

Code:
/Users/gpb01/Desktop/Prove Toolchain/Arduino 1.0.5 TL 3.4.3.app/Contents/Resources/Java/hardware/arduino/cores/arduino/IPAddress.h: In member function 'bool IPAddress::operator==(const IPAddress&)':
/Users/gpb01/Desktop/Prove Toolchain/Arduino 1.0.5 TL 3.4.3.app/Contents/Resources/Java/hardware/arduino/cores/arduino/IPAddress.h:52:75: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); };
                                                                           ^

... compila, come già ho avuto modo di dire nel thread del MAC,  WiFiWebServer senza problemi smiley-wink

Per risolvere questo tipo di warning su IPaddress, ho visto che Mauro, nell'apposito thread, a proposto una possibile soluzione ... certo che tocca mettere le mai in vari punti del core relativo alla parte TCP/IP.

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 312
Posts: 21604
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sì ma difatti io mi riallacciavo a QUELLA modifica. Io l'ho apportata e compila anche il WiFiWebServer SENZA errori.  smiley-grin
Solo un paio di alert su qualcos che trova incongruente (confronti fra tipi, se non ricordo male). Ma con quel fix, fatto in Print.cpp e non in WString come ha fatto Paolo, l'errore scompare. Su Mac, su altri SO non so.  smiley-kiss
Logged


Switzerland
Online Online
Faraday Member
**
Karma: 81
Posts: 4150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Certo, c'è da dire che una cosa è la modifica per il problema di PGMSPACE da fare in Print.cpp, modifica che è abbastanza semplice ed indolore,  un'altra è quella proposta QUI per il problema dei warning su IPaddress ... mi sembra piuttosto più complessa da gestire e credo richieda una serie di modifiche a vari files ... smiley-roll

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10097
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Su Mac, su altri SO non so.  smiley-kiss

non capisco perchè pensate che la stessa tool-chian, su differenti arch abbia comportamenti diversi.
Avreste regione se usaste risorse fornite dal SO come socket o driver vari, ma invece sono scollegati se non per la gestione delle risorse ram e cpu per l'esecuzione del compilatore
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Switzerland
Online Online
Faraday Member
**
Karma: 81
Posts: 4150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non capisco perchè pensate che la stessa tool-chian, su differenti arch abbia comportamenti diversi.

SI, infatti, mi sembra ormai provato che, a parità di modifiche, il comportamento è esattamente lo stesso (... e sarebbe grave il contrario ... stiamo parlando di uguali sorgenti semplicemente compilati su diverse piattaforme) smiley-wink

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 312
Posts: 21604
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Lesto, hai ragione. La toolchain è la stessa versione per i 3 SO, mi scordo sempre di questa cosa. sorry sorry  smiley-sweat
Logged


Offline Offline
Edison Member
*
Karma: 11
Posts: 1489
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sarebbe grave il contrario ... stiamo parlando di uguali sorgenti semplicemente compilati su diverse piattaforme

e dici niente ? diverse piattaforme (tra l'altro macOSX e' BSD) in prima istanza diverso environment!

e con la roba GNU non ti deve affatto stupire, non hai idea di quante volte mi sia successo, stesso identico codice  comportamento del compilato diverso, e ai fatti in prima istanza cosa era cambiato ?
- l'environment
- un sacco di macro nel codice attivato dall'environment con possibili sviste/bachi e mal configure, inside
- altri casini legati alle lib linkate (a volte banali casini di endian, tipico nei casi x86 vs ppc, a volte cose peggiori)

diciamo che oggi, con un progetto iper complesso come gcc, e' molto molto meno probabile ma cmq non e' da escludere solo perché sono gli stessi sorgenti: e questo perché il codice di gcc e' sotto gli occhi di tanta gente che prova e smanetta nelle piattaforme più comuni, guardacaso quelle 3 platform {x86/windows, x86/linux, x86/macOSX}, io non mi stupirei affatto se saltasse fuori qualche rogna su platform meno seguite, p.e. ppc/linux, ppc/macOSX (dead line), arm/linux, mips-be/linux,  hppa-v2/linux, hppa-v/hpux (dead line), ppc/aix, etc …

se ti faccio vedere poi versioni vetuste di gcc v2.95 compilate su BeOS/x86 (oggi Haiku) vs BeOS/ppc (ai tempi BeBox, 2xppc603) ti metti le mani nei capelli perché il casino era dettato dai diversi headers del OS target
Logged

Switzerland
Online Online
Faraday Member
**
Karma: 81
Posts: 4150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...
e con la roba GNU non ti deve affatto stupire, non hai idea di quante volte mi sia successo, stesso identico codice  comportamento del compilato diverso, e ai fatti in prima istanza cosa era cambiato ?
- l'environment
- un sacco di macro nel codice attivato dall'environment con possibili sviste/bachi e mal configure, inside
- altri casini legati alle lib linkate (a volte banali casini di endian, tipico nei casi x86 vs ppc, a volte cose peggiori)
...

Mmmm ... effettivamente ...

Comunque, al momento, per quello che abbiamo verificato, fortunatamente il comportamento è uguale su tutte e tre le piattafome smiley-wink

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

Pages: 1 ... 42 43 [44] 45 46 47   Go Up
Jump to: