Un utilissimo strumento, quando si effettuano molte modifiche al firmware (come in fase di test) o semplicemente per comodità, è il bootloader.

Il bootloader è essenzialmente un codice all’interno del microcontrollore che permette di caricare nuovo codice “utente” o di “applicazione” senza staccare e/o collegare un programmatore esterno alla scheda, come normalmente avviene nella fase di programmazione di un microcontrollore.

Tramite un software su PC, è possibile fare il download (scaricare) dell’HEX del nostro programma sul PIC, senza appunto staccarlo.

Ma come funziona il bootloader e cosa succede all’avvio del PIC?

Quando il PIC viene avviato, questo codice di BOOT controlla lo stato di un pin di ingresso, se questo pin è ad un certo stato logico (con un pulsante si porta a 0 logico il piedino) allora viene creata una connessione (UART oppure USB) con il PC e si entra appunto in fase di boot. Se il pulsante di boot non è stato premuto, il PIC passa nella locazione di memoria del codice della nostra applicazione, come su un normale dispositivo programmato comunemente.

Un esempio grafico della mappatura della memoria di un PIC con bootloader:

Leggi il resto di questo articolo »