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

@Testato:
sì, si può dire che ad oggi l'ArduinoISP2 serva ormai solo sulla 1.0.
Sia la 002x che la 1.0.1 hanno sketch ArduinoISP funzionanti.

Disponibile la nuova ToolChain (for Windows only) 3.4.1 --> http://www.atmel.com/tools/ATMELAVRTOOLCHAINFORWINDOWS.aspx
Integra:
AVR 8-bit GNU Binutils 2.22 - Binary utilities for AVR 8-bit target (including assembler, linker, etc.)
AVR 8-bit GNU Compiler Collection (avr-gcc) 4.6.2 - C language and C++ language compiler for AVR 8-bit target
AVRLibC 1.8.0 - C Standard Library for AVR 8-bit

@Menniti: il link alla toolchain nel primo post non è più funzionante.

L'hai provata? E' funzionante, nel senso che è esente da bug?
Per Linux esistono versioni degli strumenti con la stessa versione o più recenti ma sono tutti afflitti da vari bug.

PaoloP:
Disponibile la nuova ToolChain (for Windows only) 3.4.1 -->
@Menniti: il link alla toolchain nel primo post non è più funzionante.

Corretto, grazie. Finalmente si sono decisi a fare una pagina con indirizzo fisso, cambiando il solo contenuto; prima l'indirizzo variava ad ogni aggiornamento.

PaoloP:
Disponibile la nuova ToolChain (for Windows only) 3.4.1 --> http://www.atmel.com/tools/ATMELAVRTOOLCHAINFORWINDOWS.aspx
Integra:
AVR 8-bit GNU Binutils 2.22 - Binary utilities for AVR 8-bit target (including assembler, linker, etc.)
AVR 8-bit GNU Compiler Collection (avr-gcc) 4.6.2 - C language and C++ language compiler for AVR 8-bit target
AVRLibC 1.8.0 - C Standard Library for AVR 8-bit

@Menniti: il link alla toolchain nel primo post non è più funzionante.

L'ho provata ma con arduino mi ha dato qualche problema, principalmente sulle variabili in PROGMEM: tutti i tipi prog_* (usati da qualche libreria per esempio) sono deprecati e per abilitarli bisogna usare un #define (non troppo grosso come problema), e inoltre bisogna dichiararle per forza const, pena relativo errore di compilazione.

Cosa che ho notato: gli sketch che ho compilato (esempi delle lib EtherCard e RF24) risultano qualche byte più grandi...

Ah non ho sostituito gli include come dice la guida perchè, confrontandoli, quelli del primo post sono molto diversi da quelli della nuova toolchain, mancando di pezzi parecchio corposi di codice...

leo72:
L'hai provata? E' funzionante, nel senso che è esente da bug?
Per Linux esistono versioni degli strumenti con la stessa versione o più recenti ma sono tutti afflitti da vari bug.

Non l'ho ancora provata.
Per Linux ho messo la segnalazione sull'altro post.

@ Dancol90: se stai testando la versione WIN devi seguire ogni passaggio alla lettera, lascia stare i confronti...

Più tardi allora provo...per curiosità: che cosa è stato modificato in quegli include rispetto agli originali?

dancol90:

[quote author=Michele Menniti link=topic=96976.msg916430#msg916430 date=1346959052]
@ Dancol90: se stai testando la versione WIN devi seguire ogni passaggio alla lettera, lascia stare i confronti...

Più tardi allora provo...per curiosità: che cosa è stato modificato in quegli include rispetto agli originali?
[/quote]
NIENTE, quella è un'intera cartella preparata da Astro, e non è stato a partire dagli originali, per questo ti deico che l'operazione va fatta alla lettera.
Sinceramente io non ho più provato dopo la versione di Toolchai che c'era ad aprile ma ho fatto fare questo lavoro ad altri un paio di mesi fa e non hanno avuto problemi, penso non ne avrai nemmeno tu.

NIENTE, quella è un'intera cartella preparata da Astro, e non è stato a partire dagli originali, per questo ti deico che l'operazione va fatta alla lettera.
Sinceramente io non ho più provato dopo la versione di Toolchai che c'era ad aprile ma ho fatto fare questo lavoro ad altri un paio di mesi fa e non hanno avuto problemi, penso non ne avrai nemmeno tu.
[/quote]

Appena posso provo, non volevo dare contro a te, la mia era solo curiosità sul "come funziona il tutto" :slight_smile:

Fino alla versione precedente della toolchain non ho riscontrato nessun problema, e io ormai uso solo la toolchain Atmel per compilare, con questa nuova release devo verificare se ci sono problemi, però non posso farlo adesso, se ne parla non prima di fine mese.

@ Dancol90
Le modifiche agli include sono a livello di dipendenze, percorsi, precedenze di annidamento e alcune #define, i file modificati sono 12, per semplice comodità e facilità di installazione a suo tempo ho optato per copiare in toto tutta la cartella, il che include anche i file non modificati, e farla sostituire integralmente a quella esistente in Arduino.

ho notato solo adesso questo topic e ho provato a fare le operazioni descritte nel post iniziale...
ora io non so se è perchè uso l'ultima versione dell'IDE o della toolchain, però compilando uno programma qualsiasi selezionando come board un ATtiny mi da questi errori:

In file included from c:\users\user\skydrive\documenti\arduino\arduino-sw\hardware\tools\avr\bin\../lib/gcc/avr/4.6.2/../../../../avr/include/util/delay.h:46:0,
                 from c:\users\user\skydrive\documenti\arduino\arduino-sw\hardware\tools\avr\bin\../lib/gcc/avr/4.6.2/../../../../avr/include/avr/delay.h:39,
                 from C:\Users\User\SkyDrive\Documenti\Arduino\Arduino\hardware\tiny\cores\tiny\/wiring_private.h:32,
                 from C:\Users\User\SkyDrive\Documenti\Arduino\Arduino\hardware\tiny\cores\tiny\WInterrupts.c:37:
c:\users\user\skydrive\documenti\arduino\arduino-sw\hardware\tools\avr\bin\../lib/gcc/avr/4.6.2/../../../../avr/include/math.h:426:15: error: expected identifier or '(' before 'double'
c:\users\user\skydrive\documenti\arduino\arduino-sw\hardware\tools\avr\bin\../lib/gcc/avr/4.6.2/../../../../avr/include/math.h:426:15: error: expected ')' before '>=' token

compilando con altre board non ci sono problemi

?R:
ho notato solo adesso questo topic e ho provato a fare le operazioni descritte nel post iniziale...
ora io non so se è perchè uso l'ultima versione dell'IDE o della toolchain, però compilando uno programma qualsiasi selezionando come board un ATtiny mi da questi errori:

La modifica ha un senso solo con i processori più grossi degli ATtiny, in particolare serve per i MEGA25660, il core per gli ATtiny è diverso da quello per gli altri AVR e la modifica non è ne testata ne garantita per funzionare con questi, anzi sicuramente non funziona :slight_smile:
Sto aspettando una versione stabile e definitiva dell'IDE 1.5 per rilasciare una nuova release della patch, anche se per il momento funziona senza problemi con l'IDE 1.x, con la 1.5x le cose cambiano un pochino e serve una patch adattata appositamente.

Effettivamente se ti vai a leggere i motivi per i quali Astro ha rilasciato questa prima patch, vedrai che si parla della corretta gestione della memoria flash oltre i 128kb, praticamente parliamo solo di schede come la Arduino Mega2560. Personalmente sul pc ho lasciato sia la 0022 che la 1.0.1 e nelle rispettive cartelle avr ho lasciato sia l'originale che quella patchata; in base alle condizioni le rinomino e così non ho alcun problema.

quindi per i tiny non posso fare niente?
in una discussione privata con Leo lui mi dice che riesce a compilare dei programmi per i tiny che a me su windows mi da questi errori:

c:/users/user/skydrive/documenti/arduino/arduino-sw/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr25/crttn85.o:(.init9+0x2): relocation truncated to fit: R_AVR_13_PCREL against symbol `exit' defined in .fini9 section in c:/users/user/skydrive/documenti/arduino/arduino-sw/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/avr25\libgcc.a(_exit.o)

avevo avuto questi problemi anche un anno fa e avevo risolto passando a linux :slight_smile:
però speravo di trovare il modo di compilarlo anche su windows, perchè al momento ho altri problemi con linux :frowning:

?R:
quindi per i tiny non posso fare niente?

Non capisco la tua domanda, per Tiny usa l'IDE standard con il relativo core e non ci sono problemi sia sotto Windows che sotto Linux.

astrobeed:

?R:
quindi per i tiny non posso fare niente?

Non capisco la tua domanda, per Tiny usa l'IDE standard con il relativo core e non ci sono problemi sia sotto Windows che sotto Linux.

boh, io se provo con l'IDE standard a compilare un codice dove uso la SoftwareSerial e qualche altra cosa selezionando come board un tiny mi viene l'errore scritto nel mio post precedente
mentre se lo compilo su linux va senza problemi (provato l'anno scorso personalmente e l'altro ieri con Leo)

ad esempio questo codice: (lasciate stare che non fa niente di logico e che è scritto male, è solo di prova)

#include <SoftwareSerial.h>

SoftwareSerial TinySerial(0,1);

void setup()
{
 pinMode(0,INPUT);
 pinMode(1,OUTPUT);
 pinMode(2,INPUT);
 pinMode(3,OUTPUT);
 pinMode(4,INPUT);
 
 TinySerial.begin(9600);
}

void loop()
{
 Start:
 
 for (byte er=0;er<50;er++) 
 {
  unsigned int d=random();
  tone(3, 500,d);
  
  unsigned long time=millis();
  while(millis()-time<d*1.30)
  {
   if(pulseIn(2, LOW) < 400)
   { 
    if(IR_Receive()) goto Start;
   }
  } 
 }
 
 noTone(3);
}

boolean IR_Receive()
{
 noTone(3);
 
 unsigned int d[12];
 
 for(byte er=0;er<11;er++) d[er]=pulseIn(2, LOW);
  
 for(byte er=0;er<11;er++) 
 {	    
  if(d[er]>800)d[er] = 1;
  else if(d[er]>500)d[er] = 0;
  else return 0;
 }

 unsigned int r=0;
 for(byte er=0;er<11;er++)if(d[er]==1) r|=(1<<er);
 
 switch(r)
 {
  case 14: 
  {
   TinySerial.write((char)r);
   //other functions...
  }
  break;
  
  case 15: 
  {
   TinySerial.write((char)r);
   //other functions...
  }
  break;
 
  case 16: 
  {
   TinySerial.write((char)r);
   //other functions...
  }
  break;
 
  case 17:
  {
   TinySerial.write((char)r);
   //other functions...
  }
  break;
 
  case 18:
  { 
   TinySerial.write((char)r);
   //other functions...
  } 
  break;
  
  case 5:
  { 
   TinySerial.write((char)r); 
   //other functions...
  }
  break;
  
  case 19:
  { 
   TinySerial.write((char)r); 
   //other functions...
  }
  break;
  
  default: return 0;
 }

 return 1;
}

astrobeed:
Non capisco la tua domanda, per Tiny usa l'IDE standard con il relativo core e non ci sono problemi sia sotto Windows che sotto Linux.

Sembra che ci siano invece delle differenze, che non capisco da cosa derivino.
Lui ha quel problema che cita, io no.

sono appena riuscito a riavere un sistema linux a disposizione, su fedora 17 virtualizzato su vmware quel codice me lo compila... boh... :cold_sweat:

?R:
sono appena riuscito a riavere un sistema linux a disposizione, su fedora 17 virtualizzato su vmware quel codice me lo compila... boh... :cold_sweat:

Allora è certo, la toolchain per Windows ha qualcosa da modificare per funzionare perfettamente con il core Tiny.

Una domanda: ma tu hai qualche tool diverso su Windows? Hai WinAvr, o AvrStudio installati, per caso? Non è che questi installano una propria toolchain? Io so che l'IDE, se vede che sul sistema c'è installata una toolchain, non usa quella integrata ma quella esterna.