Z mojego punktu widzenia, w przypadku zwykłego mikrokontrolera (np. AVR, PIC) istnieją zasadniczo dwie metody programowania jego pamięci flash.
- Korzystanie z programatora: In-Circuit Serial Programowanie (lub jakiś wariant?)
- Jakaś forma bootloadera, z którym komunikuje się urządzenie zewnętrzne, ostatecznie pozwalając mikrokontrolerowi na flashowanie własnej pamięci.
Z pewnością musi istnieć bardzo dobry powód, aby używać bootloadera, w przeciwnym razie jego obecne powszechne użycie byłoby bardzo dziwne. Po prostu nie wydaje mi się, żebym to w pełni zrozumiał.
Czy to, że programista jest drogi? Ale są też Arduino (mikrokontroler ATmega), które mogą działać jako programiści. Czy koszt jednego dodatkowego układu scalonego jest wystarczający, aby uzasadnić użycie bootloadera? Jeśli się nie mylę, najnowsze Arduino całkowicie pozbywają się układu FTDI, zastępując go procesorem ATmega, który obsługuje interfejs USB na szeregowy. Z pewnością byłoby możliwe zintegrowanie funkcji programisty na przykład z tym układem scalonym?
Albo weźmy na przykład mikrokontroler PIC. Jest coś, co widziałem, zwane programatorem JDM. Jeśli coś takiego, praktycznie bez aktywnych komponentów, może zaprogramować PIC, to
- Po co w ogóle używać bootloadera?
- Jaki jest cel stosunkowo dużo więcej złożony PICkit (oprócz solidności)? Możliwość debugowania?