AvrGcc - Bootloader

Bootloader je v tomto ponimani kod, ktory sa moze spustit hned po resete procesora. T.j. PC register neskoci na adresu 0x0000 ale na adresu bootloadera. Tato adresa sa nastavuje pomocou fuse, tak isto ako aj to, ci sa ma po restarte skocit na adresu 0x0000 alebo na tu nastavenu.

Vyznam to ma taky, ze v tej bootovacej oblasti mozes mat kod, ktory zabezpeci preprogramovanie procesora. Zvycajne sa to aplikuje tak, ze po restarte sa skoci na bootloader. Ten si otestuje stav nejakeho tlacitka a ak je stlacene, bude cez UART ocakavat bajty, ktorymi ma prepisat “dolnu cast pamate” t.j. od 0x0000 az do svojej pociatocnej. Po skonceni preprogramovania skoci na adresu 0x0000.
Vysledok je taky, ze nepotrebujes programator, ak chces procesor preprogramovat, mozes ho preprogramovat i na dialku - podmienku s tlacitkom nahradis inou - a hlavne mozes mat proesor preprogramovany omnoho rychlejsie ako cez SPI, lebo mozes vo Flash prepisat len tie casti, ktore sa od posledneho zmenili. To ale uz musi vediet zvladat sw v PC. Programator potrebujes len raz, aby si do svojho procesora naladoval ten bootloader a spravne nastavil fuse a potom uz nie.
OBROVSKE mnozstvo roznych bootloaderov pre ATmega/ATtiny najdes na

avrfreaks.net/

vseliake univerzalne, ci specializovane. Existuje bootloader i na ATtiny