Problema compilazione sotto Linux

Buongiorno a tutti :slight_smile: alla fine ho pensato di scrivere qui per un "quasi" problema che ho e che magari è conosciuto o è capitato a qualcuno.
E' qualche anno che uso arduino per diverse applicazioni, ma ora mi ritrovo con un'applicazione su un Mega piuttosto consistente dove, stranamente, compilando con un sistema Windows va tutto liscio, se invece compilo con linux non funziona praticamente più nulla.
Lo sketch compilato (hex) ha una dimensione di 72K (ci sono 6000 righe di codice) e il loop gira in 3ms costanti (non ci sono delay o loop pesanti in alcuna parte del codice).
Uso le seguenti librerie (magari è un problema sulla gestione di una di queste)

eeprom.h
spi.h
Ethernet.h
EthernetUdp.h
EthernetBonjour.h
LiquidCristal.h

inoltre la comunicazione seriale è attiva a 115200Kbs

Il problema sembrerebbe dovuto ad una errata allocazione di valori nelle variabili: via ethernet infatti imposto molteplici parametri all'interno del Mega che a sua volta li scrive in eeprom. Quando li vado a rileggere (anche senza rileggere da eeprom) questi non hanno i valori che avevo scritto: esempio un int di valore = 2000 me lo ritrovo = 1996.... e così via per una tonnellata :slight_smile: di altri parametri....

Ho monitorato la memoria RAM durante l'esecuzione: ne ho libera sempre 4.5K (8K è la totale quindi sono abbondantemente dentro).

Ovviamente il problema non è così pesante in quanto compilando sotto Windows tutto questo non succede ed il sistema gira come un violino...

Boooo!!!

A qualcuno viene in mente qualcosa?

Un grazie a tutti....
Ciaooo
Gaetano

Specifica:

  1. che distribuzione usi
  2. che versione dell'IDE usi
  3. se l'IDE l'hai recuperata da un repository della tua distribuzione oppure se l'hai scaricata dal sito di Arduino
  4. se la toolchain Atmel che stai usando è sempre quella del repo oppure no

Queste info servono anche per Windows

Può darsi che sia un problema di compilatore usato, c'è un "limite", i 64K appunto, che se li passi ed usi un compilatore non capace di gestire sketch molto grandi, compili generando del codice non perfettamente funzionante.

Allora:

  1. Ubuntu 13.04
  2. IDE Arduino versione 1.0.3
  3. Scaricata dalla repository di Ubuntu
  4. La toolchain è quella della repo ho aggiunto a mano la libreria EthernetBonjour

..Intanto scarico l'IDE 1.0.5.....

...scusa.... su Windows uso IDE versione 1.0.5 e compilo sia con XP che con W7 32 o 64 bit senza problemi

Ok!! Scariccata la versione dal sito per il 64bit e ora funziona correttamente....

Grazie di tutto
Ciao!!!

Mi fa piacere che hai risolto, mi ero dimenticato di risponderti... :sweat_smile:
Le mie domande erano proprio volte a capire che IDE e che toolchain usassi perché quelle dei repo non sono affidabili al 100%.