O loaderech AVR se dá najít mnoho informací a odkazů, ale bohužel je většina projektů založena na nestandartním komunikačním protokolu a nebo vázána na nějaký konkrétní hardware, a není možné program do mikrokontroléru nahrát pohodlně z AVR Studia nebo jiného vestavěného programátoru, proto jsem takováto řešení zavrhnul a hledal něco univerzálnějšího. Jako rozumný se nakonec ukázal komunikační protokol STK500v1, není zbytečně komplikovaný a s nepatrnými úpravami použitelný pro větsinu mikrokontrolérů s velikostí flash do 128K.
"Loader" myšleno jako nástroj umožnující upgrade firmware našeho AVR v již fungující aplikaci pomocí RS232/USB který bude dostupný a snadno použitelný, je tedy potřeba na začátku zvážit jak čím a kdy přepnout mikrokontrolér do režimu update firmware, máme několik možností:
Následující "Loader" je aktivován vždy po startu mikrokontroléru (nastavena propojka/bit procesoru BOOTRST a BOOTSZ=1024) a testuje zdali má pokračovat hlavním programem nebo naopak čekat na povely z RS232/USB, i tak je k jeho prvnímu nahrání do mikrokontroléru potřeba vždy nějaký funkční programátor, protože mikrokontroléry AVR se neprodávají naprogramované, ale můžeme tak učinit ještě před osazením do desky (k nahrání stačí připojit 6pinů), dalši změny už lze pohodlně provádět na hotovém zařízení/aplikaci
Samotný "Loader" ke stažení tj. bez aplikace/hlavního programu k nahrání do nového nebo smazaného mikrokontroléru, nezapomeňte nastavit propojku/bit procesoru BOOTRST a BOOTSZ=1024 jinak nedojde ke spustění "Loaderu" ale jen hlavního programu poku v mikrokontroléru nějaký byl
"Loader" se chová jako připojený STK500 v PP/HVSP režimu a jako sigtaturu vrací 0x1E, 0x93, 0x07 odpovídající mikrokontroléru AT-Mega8, do inicializace "Loaderu" doporučuji doplnit indikaci režimu programování a případně inicializaci dalšich periferií a IO pinů apod...