Buongiorno a tutti
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
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