D'après ce que je comprends, pour un microcontrôleur commun (par exemple AVR, PIC), il existe généralement deux méthodes de programmation de sa mémoire flash.
- Utilisation d'un programmeur: In-Circuit Serial Programmation (ou une variante?)
- Une certaine forme de chargeur de démarrage, avec lequel un périphérique externe communique, permettant finalement au microcontrôleur de flasher sa propre mémoire.
Il doit certainement y avoir une très bonne raison d'utiliser un bootloader, sinon son utilisation répandue actuelle serait très étrange. Je n'ai tout simplement pas semblé l'avoir complètement compris.
Est-ce qu'un programmeur coûte cher? Mais alors, il existe des Arduinos (microcontrôleur ATmega) qui peuvent fonctionner comme des programmeurs. Le coût d'un IC supplémentaire est-il suffisant pour justifier l'utilisation d'un chargeur de démarrage? Si je ne me trompe pas, les derniers Arduinos se débarrassent complètement de la puce FTDI, la remplaçant par un processeur ATmega qui assure l'interfaçage USB vers série. Il serait sûrement possible d'intégrer la fonction du programmeur sur ce CI par exemple?
Ou prenons par exemple le microcontrôleur PIC. Il y a quelque chose que j'ai vu appelé le programmeur JDM. Si quelque chose comme ça, avec pratiquement aucun composant actif, peut programmer un PIC alors,
- Pourquoi utiliser un chargeur de démarrage?
- Quel est le but de ce plus PICkit complexe (mis à part la robustesse)? Capacité de débogage?