Generare il bootlader in formato hex per Arduino

Generare il bootloader in formato hex per Arduino

In questo post vedremo come Generare il bootloader in formato hex per Arduino, utile se vogliamo utilizzare un AVR Programmer per programmare le nostre board.


Generare il bootloader in formato hex per Arduino

Che cos’è e a cosa serve il Bootloader?

Il bootloader è fondamentalmente un file in formato .hex (esadecimale) che viene eseguito quando il microcontrollore è acceso. Può essere paragonato al BIOS dei PC.
Quando la board viene alimentata il bootloader controlla se si sta tentando di programmarla tramite computer. In caso affermativo preleva lo sketch proveniente dal PC e lo carica nella memoria del circuito integrato, altrimenti fa eseguire al chip il codice che ha già in memoria.
Una volta caricato il codice che ha in memoria Arduino esegue continuamente il loop del programma fino a quando la scheda è alimentata.
Quando si prova a caricare il codice, Arduino IDE ripristina il chip facendolo spegnere e riaccendere, in modo da permettere al bootloader di eseguire i controlli che abbiamo visto prima (caricare l’eventuale sketch proveniente dal PC o far eseguire al circuito integrato lo sketch presente in memoria).

Prerequisiti

Per generare il bootloader in formato .hex utilizzeremo l’ambiente di sviluppo Arduino IDE.
Per vedere come installare l’IDE vi rimando a questo post. Dopo aver installato l’IDE dobbiamo effettuare una minima configurazione.

Impostazioni Arduino IDE

Per chi è alle prime armi con Arduino molto probabilmente no sa che l’IDE, prima di inviare gli sketch sul microcontrollore, li converte in formato hex (esadecimale)
I file convertiti vengono salvati in una cartella temporanea del PC. Per conoscere il percorso in cui vengono salvati bisogna modificare alcune impostazioni dell’IDE.
Dall’ambiente di sviluppo apriamo le impostazioni cliccando su File -> Impostazioni

Generare il bootloader in formato hex per Arduino impostazioni ide

Nella pagina delle impostazioni flegghiamo la check box compilazione alla voce Mostra un output dettagliato durante:

Generare il bootloader in formato hex per Arduino cambio impostazioni

Dopo aver inserito il flag clicchiamo sul pulsante OK. in basso a destra, per confermare le modifiche.

Generare il file .hex bootloader

Possiamo generare il file .hex del bootloader lasciando lo sketch di default che contiene solo le funzioni setup() e loop(), oppure creare lo sketch che ci interessa.
Per generare il bootloader con uno sketch già funzionante possiamo caricare lo sketch blink da File -> Esempi -> 01.Basics -> Blink

Generare il bootloader in formato hex per Arduino sketch blink

In questo modo, quando andremo a caricare il file .hex tramite un AVR Programmer sulla nostra board, potremo vedere se funziona correttamente il lampeggio del led.

Se, ad esempio, vogliamo generare il file per la board Arduino Nano, impostiamo la board da Strumenti -> Scheda -> Arduino Nano

Generare il bootloader in formato hex per Arduino scheda arduino nano

E selezioniamo il processore da Strumenti -> Processore -> ATmega328P (ovviamente il processore relativo alla vostra board)

Generare il bootloader in formato hex per Arduino selezione processore ATmega328P

Dopo aver selezionato la Board e il Processore clicchiamo sul pulsante Verifica (contrassegnato da una spunta simile ad una v) per far partire la compilazione dello sketch

Generare il bootloader in formato hex per Arduino verifica sketch


Generare il bootloader in formato hex per Arduino

Prelevare il file .hex bootloader

Al termine della compilazione, nella parte relativa alla visualizzazione dell’output delle azioni eseguite dall’IDE, ci sarà una voce che indica la posizione in cui è stato salvato il file .hex che ci interessa
Per recuperare il percorso non dobbiamo fare altro che scorrere tra le righe dell’output fino a trovare la voce Blink.ino.hex (di solito la terzultima riga dell’output).

Generare il bootloader in formato hex per Arduino output compilazione

N.B. Il nome del file dipende dal nome che avete dato allo sketch, in questo caso è Blink.ino.hex perchè abbiamo creato il file .hex relativo allo sketch blink.

Per prelevare il nostro file .hex non dobbiamo fare altro che raggiungere il percorso indicato nell’output durante la verifica. All’interno della cartella sono presenti diversi file, quello contenente il bootloader e contrassegnato dalla dicitura with_bootloader.hex

Generare il bootloader in formato hex per Arduino percorso

In alternativa possiamo prelevare il bootloader in formato hex direttamente dal percorso di installazione dell’IDE di Arduino. Il percorso di installazione cambia in base alle preferenze impostate durante l’installazione. Nel mio caso utilizzo la versione portable dell’IDE e la cartella contente i bootloader si trova in arduino-1.8.5\hardware\arduino\avr\bootloaders\optiboot. All’interno della cartella sono presenti diversi bootloader, dobbiamo solo prelevare quello relativo al processore della board che vogliamo programmare.

Generare il bootloader in formato hex per Arduino optibot

Bene, abbiamo visto come Generare il bootloader in formato hex per Arduino, o come recuperarlo dalla cartella di installazione di Arduino IDE.
Ora non ci resta che testarlo utilizzando un Programmatore AVR.

A presto 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *