File HEX BootLoader per 1284P

Dove posso trovare il file HEX da caricare nell' ATmega1284P tramite un programmatore esterno?
Ho letto diverse guide su come farlo tramite arduino come ISP in seriale o ISP ma disponendo di un programmatore standalone vorrei programmare con quello.
Voglio metterci il bootloader per avere la possibilita' poi di caricare gli sketch in seriale senza doverlo sfilare dalla sua board.
Grazie

mi rispondo da solo....l' ho trovato, ce l' ho gia' sul computer visto che grazie alla guida di Leo72 ho implementato questo mcu in arduino.
solo per conferma, il bootloader in questione funziona sulla seriale 0 oppure sulla 1? presumo la prima.

Boh!

C'è stato un topic dove si è discusso parecchio di questo bootloader per 1284P e per il 644P, prova a cercarlo.

no il file che c'e' nella cartella hardware dopo averlo implementato in arduino non funziona, e' di solo 2Kb e il programmatore mi da errore, ho bisogno del firmware completo da flashare...
ora cerco la discussione, spero di trovare qualcosa, altrimenti so dolori.

Ho trovato queste:
--> [Solved by setting a fuse] 1284P cannot be programmed - Microcontrollers - Arduino Forum
--> Aggiungere una MCU compatibile all'IDE - Generale - Arduino Forum
--> Core Mega644/1284 aggiornato per l'IDE 1.5.4 - Generale - Arduino Forum
--> Atmega644 - Generale - Arduino Forum

I file sono giusti, non conta la dimensione dell'hex, il fatto che siano piccoli è perché sono versioni modificate dell'Optiboot, che per sua natura è di poche centinaia di byte ma il 644/1284 riservano come minimo 1024 byte di flash per il bootloader.

Comunque, quella versione allegata alla mia guida implementa la seriale sulla 0, c'è un altro bootloader modificato che permette di attivare la Serial1, questo perché la Serial0 su alcuni Atmega1284 dà dei problemi in combinazione con l'Optiboot.

accidenti...mi sta uscendo il fumo dalle orecchie..
si alcune di quelle discussioni le avevo lette e il resto l' ho letto ora, ma nessuno fornisce il firmware completo per il 1284p.

Si Leo, ma non riesco a flasharlo nella mcu, se apro il file dell' optiboot il programma (ho un programmatore Willem 580 USB) mi da errore, non capisco perché!

se all' apertura scelgo come formato il "INTEL HEX" mi da errore.....
se invece lo apro come BIN lo apre, ma non credo sia corretto....
aiutoooooo :slight_smile:

Deltoz:
se all' apertura scelgo come formato il "INTEL HEX" mi da errore.....
se invece lo apro come BIN lo apre, ma non credo sia corretto....
aiutoooooo :slight_smile:

E' un bin, infatti sono 2k pari a 1 kword.

astrobeed:

Deltoz:
se all' apertura scelgo come formato il "INTEL HEX" mi da errore.....
se invece lo apro come BIN lo apre, ma non credo sia corretto....
aiutoooooo :slight_smile:

E' un bin, infatti sono 2k pari a 1 kword.

Accidenti...grazie mille, ma perché ci mettono l' estensione HEX.....arggg
Quindi posso caricarlo aprendolo come bin.
Ma per i fuse, settaggio del clock (esterno a 16MHz) devo fare qualcosa?

Hai provato questo? --> mighty-1284p/bootloaders/optiboot at master · maniacbug/mighty-1284p · GitHub

E' normale che te lo apra con BIN e comunque un file binario.
Il suo formato interno è l'INTEL HEX. (Intel HEX - Wikipedia)
Viene costruito da avr-objcopy a partire dal file .elf
Qui (avr-libc: A simple project) è descritto tutto il processo dal C all'eseguibile.

I file hex del bootloader sono pronti per essere flashati dall'IDE. Oppure, in alternativa, usando avrdude da riga di comando.

si si il bootloader lo avevo, credo sia proprio quello.
Il programma non me lo apriva, dandomi errore, perché chiedendomi in che formato lo volessi aprire io sceglievo l' HEX, vista l' estensione, invece aprendolo in BIN ( che ad ogni modo il formato interno cambia) me lo apre nel formato giusto.
Ora l' caricato nel 1284p.
Adesso devo provare a caricare uno sketch dall' IDE arduino per verificare se il tutto funziona, spero che il convertitore USB/seriale che ho (PL2303HX) funzini, altrimenti dovrei avere anche un FT232RL che e' anche migliore....
Vediamo che succede....

Rifaccio la domanda.... per i fuse e il clock (16MHz esterni) devo cambiare qualcosa al bootloader? o e' gia' settato a 16MHz?

leo72:
I file hex del bootloader sono pronti per essere flashati dall'IDE. Oppure, in alternativa, usando avrdude da riga di comando.

Quindi con il programmatore standalone non posso??
sono un po' confuso.
In caso negativo....come faccio a farlo? qualcuno ha un firmware completo che posso usare?

I fuse si settano tramite il programmatore. Sono dei particolari registri del micro.
Non c'entrano con il bootloader se non per il fatto che l'IDE di Arduino li setta poco prima di scriverlo; ma è una operazione indipendente.
Controlla nel software del tuo programmatore oppure usa avrdude.

si posso settarli dal mio programma, ma non so come settarli, mi pare che in alcune discussioni lette c'erano i settaggi, poi vado a cercarli.
Ad ogni modo se non ho il firmware non riesco a fare nulla.
Dovrei caricarlo tramite l' ide con la tecnica isp, dopodiche' magari mi salvo il firmware completo.

Ma posso usare il mio programmatore con l' ide? posso implementarlo tra i programmatori esistenti?
Se fosse possibile potrei usare la funzione "Carica BootLoader" e programmarlo con il mio programmatore....dico eresie?

Cosa intendi per firmware "completo"?
Si puoi integrarlo tra i programmatori ma devi conoscerne le specifiche perché oltre ad inserirlo nella lista dell'IDE in programmers.txt devi aggiungerlo al file .conf di avrdude, oppure vedere se il programmatore emula un programmatore già conosciuto.

i fuse li calcoli qui --> http://www.engbedded.com/fusecalc

Per Firmware completo intendo il file in formato bin o hex da poter caricare direttamente nella mcu con il mio programmatore per caricarci il bootloader.
Visto che hai detto che il file .hex di 2Kb del bootloader puo’ essere usato solo tramite l’ IDE…io vorrei farlo tramite il mio programmatore.

Per i fuse grazie per la dritta.

Deltoz:
Per Firmware completo intendo il file in formato bin o hex da poter caricare direttamente nella mcu con il mio programmatore per caricarci il bootloader.
Visto che hai detto che il file .hex di 2Kb del bootloader puo' essere usato solo tramite l' IDE....io vorrei farlo tramite il mio programmatore.

Scusa ma hai un pò fatto confusione.
Un file .hex è un file pronto per essere scritto nella memoria del microcontrollore, non importa con quale programma tu faccia questa operazione. Se invece il tuo programmatore vuole un altro formato oppure compila esso stesso i sorgenti del bootloader allora è un altro paio di maniche. I file hex puoi scriverli con l'IDE come puoi farlo anche da terminale con avrdude direttamente.

Non riesco a capire quando dici che non riesci ad aprire il file hex dal tuo programmatore. Il programmatore non apre nulla, è un'interfaccia hardware: riceve i dati da un software sul computer e li invia al micro per salvarli nella Flash.

bhe' tra ide, programma, programmatore ecc si...forse sto facendo un po confusione nello spiegarmi.
Allora cerco di spiegarmi meglio.
Io voglio creare una board con il 1284p, caricargli il bootloader per poi poter caricare in seriale(senza levare la mcu dalla board) tramite l' IDE Arduino gli sketch che sviluppo.
Voglio caricare il bootloader tramite il mio programmatore Willem 580 (con il suo relativo programma).
Come faccio? Posso farlo?
Ho il file bootloader per il 1284p, lo apro con il programma del Willem (specificando che e' un bin e non un hex, visto che solo cosi' me lo apre), ho settato i fuse all' interno del programma (speriamo giustamente) e l' ho flashato nella mcu....va bene cosi?? funzionera'? (mi accingo a provare)