Grazie per le risposte,
alla fine ho trovato una soluzione, io uso Mac e Linux, però ho trovato una guida su un sito russo per configurare Eclipse Indigo con Arduino e relativo AVR Plugin in ambiente Windows, ho provato e sembra che funzioni bene;
unico problema è che non riconosce "Serial" e segna un errore, si può risolvere con: "HardwareSerial Serial;" ma in compilazione da errore perchè già dichiarato, poi alla fine ho tentato una prova e sembra che funzioni, metto tutti i Serial all'interno di:
#ifdef DEBUG
#endif
in questo modo non vedo l'errore di eclipse, poi prima della compilazione aggiungo all'inizio del programma "#define DEBUG" e compilo, l'errore lo segna ma sembra che la compilazione vada a buon fine. Carico l'HEX su Arduino tramite Eclipse e funziona tutto senza problemi.
Ora ho riscontrato un'altro problema, io attualmente ho:
- Arduino Duemilanove con ATmega328
- Arduino Ethernet Shield POE con microSD
- USB Host Shield -> SparkFun USB-C Host Shield - DEV-21247 - SparkFun Electronics
dovrei scrivere un software che monitora la USB (ho già la libreria pronta) e scrive i dati sulla microSD, poi reperire questi dati tramite la ethernet, e qui arrivano i problemi:
Ho scritto il programma con all'inizio solo, WProgram.h, SPI.h e Ethernet.h l'HEX veniva circa 45Kb e qui nessun problema funzionava perfettamente.
Poi ho aggiunto la libreria per la SD, reperibile qui per chi fosse interessato: GitHub - adafruit/SD: fixes & updates to the Arduino SD library - totally in progress. works but in beta (l'HEX veniva circa 150Kb) ho apportato delle modifiche alla libreria ottimizzandola al massimo, lasciando solo quello che mi serve e usando il filesystem FAT16; il nuovo HEX era di 89Kb.
Ho tantato l'upload però arvdude mi genera questo errore (log completo):
Launching C:\WinAVR-20100110\bin\avrdude -pm328p -carduino -P//./COM21 -b57600 -F -Uflash:w:MyApp.hex:a
Output:
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "MyApp.hex"
avrdude: input file MyApp.hex auto detected as Intel Hex
avrdude: writing flash (32054 bytes):
Writing | ################################################## | 100% 15.87s
avrdude: 32054 bytes of flash written
avrdude: verifying flash memory against MyApp.hex:
avrdude: load data flash data from input file MyApp.hex:
avrdude: input file MyApp.hex auto detected as Intel Hex
avrdude: input file MyApp.hex contains 32054 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 13.69s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x7800
0x50 != 0x0c
avrdude: verification error; content mismatch
avrdude done. Thank you.
avrdude finished
Ora se riesco a risolvere questo problema, che non capisco ancora molto bene (forse la dimensione 32054 bytes, ho superato la disponibilità dell'atmega328 di 54 bytes?), vorrei ritentare il tutto in amibiente Mac e Linux e di conseguenza postare una guida completa.
Grazie a tutti in anticipo.