Go Down

Topic: Upload hex file con avrdude (Read 9959 times) previous topic - next topic

Pelletta

Salve ragazzi, non linciatemi per quello che sto per chiedere, mi ricordo che la cosa era già stata discussa in passato ma non riesco a trovarla nei vecchi post, è un'ora che cerco senza esito...
Dovrei cercare di fare una specie di arduino autoprogrammante ossia capace di caricare da solo alcuni sketch già compilati.
Quello che ho pensato di fare è scrivere i vari sketch da caricare sull'atmega328 e compilarli ottenendo così i vari file hex; successivamente caricare uno di questi file da riga di comando usando avrdude.
So che sembra un giro pazzesco oppure una cosa totalmente inutile, però quello che vorrei fare è un pò più automatizzato, cerco di spiegarmi un pochino meglio.
Sul pc ci sarà un programma scritto in processing che in base a certi eventi lancerà il comando per caricare uno dei vari file hex sull'arduino.
Ora vengo alla parte dolente: per ora so soltanto generare i file hex, ma non so il comando da lanciare per fare l'upload ( immagino qualcosa tipo "avrdude percorso file.hex" e chissà cos'altro, fin'ora in rete ho trovato solo comandi per i fuse).
Altra cosa importante, ho soltanto dei 2009 e kubuntu sui miei pc mentre questo sistema andrà sul pc di mio cugino che ha una uno e seven come sistema operativo.
I test li farò io sui miei pc, prima però di cominciare a fare qualcosa vorrei sapere se poi incontrerò dei problemi quando userò la uno e seven.
Ringrazio chi mi vorrà dare una mano
Saluti

 
 

leo72

Questo thread può fare al caso tuo:
http://arduino.cc/forum/index.php/topic,64278.0.html

Lì parlo del bootloader ma la procedura vale per qualunque file .hex.

Pelletta

Me lo studio di corsa, grazie Leo!
Spero di non aver problemi...

leo72


Pelletta

E dai però, ero partito molto motivato   :)

menniti

Se hai difficoltà fammi sapere, che mi sono scritto la sintassi per Windows in un file, che ho in lab, dopo esserci riuscito per la prima volta un paio di giorni fa.

uwefed

ciao Pelletta
Non vedo la necessiá di quello che chiedi di fare.
L' unica causa che mi viene in mente é che i 32kByte Flash del ATmega328 non bastano per il Tuo programma.
In quel caso la soluzione sono:
un Arduino Mega (o Seeeduino mega)
un EEprom, FRAM o schedina SD per tenere Dati come stringhe ecc.
Ciao Uwe

Pelletta

Uwe qua non è questione di spazio, devo solo fare l'upload di un hex direttamente sull'atmega senza passare dall'ide ma da riga di comando con avrdude, tutto qua (per me è più facile da dirsi che a farsi).
Sinceramente non saprei nemmeno che senso potrebbe avere caricare un nuovo hex per questione di memoria... tanto il programma mica si può caricare in più volte, se lo sketch fosse stato più grande avrei scelto un altro processore senza impazzire più di tanto.

Cercando in rete ho trovato dei tools ma non posso usarli perchè non posso lanciarli da riga di comando, li posto giusto nel caso servissero a qualcuno:
ArdUp http://smileymicros.com/blog/2010/10/11/ardup-an-arduino-hex-file-uploader/
Arduino Hex Uploader and Programmer http://www.ngcoders.com/downloads/arduino-hex-uploader-and-programmer
Flashing Grbl Hex to Arduino Uno in Ubuntu 10.4 http://academy.cba.mit.edu/tutorials/grbl2arduinUno/grbl2arduinoUnoF.html
e ce ne sono anche altri ma non ho trovato niente per windows.
Continuo le ricerche nel frattempo.

@Menniti: che stai preparando la versione 4 della guida per caso?
Saluti a tutti

leo72

Ovviamente il tuo silenzio lo prendo come un tentativo riuscito, giusto?

brainbooster

anche se processing crosscompila, i comandi per la shell sono diversi da windows a ubuntu, quindi quando scrivi l'applicazione , devi riconoscere il sistema operativo su cui ti trovi ed agire di conseguenza cambiando al volo la sintassi dei comandi per avrdude a seconda dell'os in cui ti trovi.
...ma ci avevi già pensato vero?

Pelletta

@Brainbooster: si si, ne ero consapevole che i comandi non saranno gli stessi tra i due os, ma questo non sarà un problema.

brainbooster

però per fare quello che dici hai bisogno di inviare un hardreset ad arduino, e dialogare con il bootloader appena diviene disponibile.

Pelletta

Urca, ogni volta ne esce fuori una nuova...
proverò con la 2009 e vedo che succede

leo72

Aspetta. Se lanci avrdude da terminale non è necessaria tale operazione dato che è il software che si prende la briga di dialogare con l'Arduino, inviare il reset e far partire la programmazione del micro.

menniti

Ho idea che a Pelletta si stia incasinando il cervello, a motivo di una discussione corollaria che ha messo in piedi BB, tanto per fargli uno sgambetto anzitempo  ;)
Cioè, voglio dire che se questo nostro amico cerca di fare la "semplice" operazione di invare un file hex ad un chip in stand alone tramite Arduino, bisognerebbe aiutarlo, come avete fatto con me, ad arrivare alla sintassi esatta. Semmai poi si va a vedere (penso che Leo e BB stiano parlando di due cose differenti) come fare ad analizzare il S.O. presente nella macchine e decidere quale sintassi usare (mi pare questo l'intervento di BB), e quindi affrontare la questione dell'hard reset.
Io avevo capito che aveva risolto, se non ha risolto con questo primo passaggio direi che lo si possa aiutare a farlo.

Go Up