Otázky týkající se bootloaderu

Bootloader není nic jiného, než program, který umí přenést data odněkud do programové paměti mcu. Záměrně píšu odněkud, protože zdroj dat může být v podstatě cokoliv. Pojistky se přenastavují proto, že pro bootloader je vyhrazená paměť na konci paměťového prostoru procesoru a spouští se vždy po zapnutí mcu. Na základě nějakých podmínek (ty si opět volíš sám) buď spustí vlastní program nebo zůstane čekat na příjem dat. Většinou se používá UART, protože je to nejjednodušší, jak nasypat program do mcu. USB rozhraní bys musel implementovat do ATmega32 softwarově a na to by Ti pravděpodobně paměť vyhrazená pro bootloader nestačila. Do bootloaderu se sypou většinou BIN a ne HEX soubory, protože HEX soubory bys musel v mcu ještě překládat do BIN a to by se opět nemuselo do paměti pro bootloader vejít. Na webu samozřejmě existuje spousta bootloaderů připravená pro všeobecné použití. I Arduino není nic jiného, než AVR s nahraným bootloaderem pro UART komunikaci s prostředím. A pochopitelně, potřebuješ vědět, jakým protokolem spolu komunikují. To pochopitelně potřebuješ u všech bootloaderů.

Podmínky, za jakých se (ne)spustí hlavní program a komunikační protokol a rozhraní si samozřejmě určuješ sám pouze v případě, že si bootloader programuješ sám. Jinak se musíš přizpůsobit tomu, co si stáhneš.