Dalla mia comprensione, per un microcontrollore comune (ad esempio AVR, PIC), ci sono generalmente due metodi per programmare la sua memoria flash.
- Utilizzando un programmatore: Seriale in-circuit Programmazione (o qualche variante?)
- Una qualche forma di bootloader, con cui comunica un dispositivo esterno, consentendo in ultima analisi al microcontrollore di eseguire il flashing della propria memoria.
Sicuramente ci deve essere un'ottima ragione per usare un bootloader, altrimenti il suo uso diffuso sarebbe molto strano. Semplicemente non mi è sembrato di averlo capito ancora completamente.
È che un programmatore è costoso? Ma poi ci sono Arduino (microcontrollore ATmega) che possono funzionare come programmatori. Il costo di un IC in più è sufficiente per garantire l'uso di un bootloader? Se non sbaglio, gli ultimi Arduino eliminano del tutto il chip FTDI, sostituendolo con un processore ATmega che esegue l'interfaccia USB a seriale. Sicuramente sarebbe possibile integrare la funzione del programmatore su questo IC, ad esempio?
Oppure prendiamo ad esempio il microcontrollore PIC. C'è qualcosa che ho visto chiamato programmatore JDM. Se qualcosa di simile, virtualmente senza componenti attivi, può programmare un PIC,
- Perché usare un bootloader?
- Qual è lo scopo di relativamente molto di più complesso PICkit (a parte la robustezza)? Funzionalità di debug?