нельзя! Вот, представь, стоит у тебя девайс где нибудь под землей на
большой глубине. Или на высоченной башне куда лезть и лезть, или девайсов
у тебя таких миллион? А связь у тебя с девайсом по UART какому нибудь
или радиоканалу. И вот надо прошить девайс свежей версией прошивки.
Выкапывать, лезть на башню или тыкать в каждый из девайсов шнур
программатора… это же сдохнуть можно! А так дал девайсу общий сброс,
приказал удаленно бутлоадеру всосать новую прошивку и вуаля!
Мало того, с помощью бута можно сильно облегчить обслуживание
коммерческих устройств. Например, такая простая вещь как обновление
прошивки, которую поддерживает масса девайсов вроде плееров или
сотовых телефонов и которую делает обычный юзер. Выходит прошивка
доступна и конкурентам? А вот фигу! Она шифрованая, а бутлоадер
содержит ключ для ее дешифровки, дешифрует на лету и заливает во флеш.
Красота, правда?
Недостатков у любого бутлоадера два — самый главный в том, что он
отжирает часть флеша. Это неизбежное зло. Второй, не менее весомый, то
что он стартует первый и если не позаботиться о грамотном алгоритме входа
в бут, то девайс может сделать это самопроизвольно, записав в себя черт
знает что. Такая беда была, ЕМНИП, со старыми GSM модулями SIM300DZ
у которых часто ВНЕЗАПНО при неправильном выключении питания
слетала прошивка. А просто модуль входил в бут режим и наведенные
помехи на входах устраивали ему армагедец.
Откуда Bootloader берется в контроллере?
Многие современные МК уже изначально, с завода, идут с прошитым
bootloader’ом. В AVR же ничего подобного нет, поэтому его надо прошить
самостоятельно. Да, программатор потребуется. Обычный ISP, любой —
Громова, STK200, Пять проводков, USBAsp да тысячи их. Им зашиваешь в
память обычную прошивку, но содержащую бут. После чего программатор