Záložky: Úvod - Možnosti bootloaderu -
Návod k použití - Download
Malý problém je ten, že nejdříve je třeba bootloader nějak do ATmega8 dostat.
K tomu je nutné použít nějaký jiný programátor.
Já jsem v té době ještě neměl biprog a tak jsem použil TSP-IC. Protože IC-prog nějak stagnuje a nepodporuje
novější AVR procesory, musel jsem použít program PonyProg. Abych ho mohl použít, udělal jsem si redukci.
|
Ideální je procesor s bootloaderem pro ty aplikace, které při své činnosti využívají sériový port a komunikují
pomocí něj s osobním počítačem. Příkladem je třeba biprog. V dalším popisu bootloaderu toho budu využívat,
ale v jiné aplikaci to bude podobné.
Na tomto místě je třeba ovšem poznamenat, že biprog není úplně nejvhodnější příklad pro prezentaci bootloaderu.
biprog je přece jen trochu zvláštní případ aplikace. Je to programátor, podobně jako bootloader. biprog jsem vybavil
dostatečným množstvím signalizačních diod LED (s ohledem na možné jiné využití HW) a tak jsem toho chtěl využít
i v bootloaderu. Jednu z LED (LED6) jsem tedy vyhradil pro indikaci režimu bootloaderu. V "normální" aplikaci bohatě
stačí k signalizaci jediná LED, tak jak je to popsáno v základní verzi bootloaderu (BootloaderDL5NEG.asm).
V biprogu je tedy použita jiná - upravená verze bootloaderu. Najdete ji dole, v části Download.
Zpět k popisu funkce bootloaderu na příkladu biprogu. Předpokládejme, že je třeba změnit firmware aplikace.
Soubor stk500.ebn není samozřejmě možné pro HW s ATmega8 použít. Jak napsat či změnit firmware zde popisovat
nebudu. Pro další popis předpokládejme, že máme připraven soubor "new_version.hex" s novou verzí firmware. Nyní
máme dvě možnosti, jak pomocí bootloaderu nový firmware "vypálit" do procesoru.
Při každém resetu procesor skočí na začátek bootloaderu. Tam je umístěna rutinka, testující zda je stisknuté tlačítko
na vstupu TestPort/TestBit (v případě biprogu je to pin PC0). Je-li tlačítko stisknuté, pokračuje se rutinou bootloaderu.
V opačném případě program okamžitě skočí na adresu 0, tj. začátek "firmware". Procesor se tedy v tomto případě chová
jako bez bootloaderu. Předpokládejme tedy, že tlačítko je při resetu procesoru stisknuté. V tom případě začnou LED1
a LED4 blikat a biprog
bude několik sekund čekat na spuštění AVRprogu. Pokud ho spustíme včas, rozsvítí se trvale
LED4 a LED6 a je možné provést upgrade stejně jako při postupu a).
Je-li pro vás popsaný bootloader zajímavý, můžete si stáhnout soubor BootloaderDL5NEG.asm .
Doporučuji stisknout pravé tlačítko myši a použít "Uložit cíl jako ...".
Soubor je z 99% ponechán v originální podobě od autora Herberta Dingfeldera, DL5NEG. Místa, která jsem upravoval,
jsou všude označena tímto komentářem: ;LR****************************.
Přeložený bootloader s parametry nastavenými pro biprog je v souboru BootloaderDL5NEG-biprog.hex.
Upravený zdrojový text bootloaderu s parametry nastavenými pro biprog je v souboru
BootloaderDL5NEG-biprog.asm.
Opět použijte pravé tlačítko myši a v nabídce si vyberte "Uložit cíl jako ...".