Co je bootloader?
Moderátor: Moderátoři
Co je bootloader?
mohl by mi prosim nekdo vysvetlit k cemu je dobry "bootloader" u MCU?
UTFG
Nejčastěji se bootloader používá k tomu, aby bylo možné aktualizovat software v procesoru přes sériový kabel.
Je to malý prográmek nahraný v MCU, který po resetu zběžně zkontroluje vstupy a výstupy, a buď nechá hlavní program ať pokračuje, nebo očekává přísun nového SW.
K dalšímu studiu se podívej, jak si lze doma postavit Arduino.
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
Paměť programu (FLASH) má u větších typů Avr dvě části:
Application section a Bootloader section.
Application section začíná na adrese 0. Je to ta část paměti, kam zapisujeme náš uživatelský program.
Bootloader sekce je naopak umístěná na konci paměti (např. u mega8 jsou to poslední dva kilobajty).
Bootloader je malý program, umístěný v sekci bootloader.
Tento program umí
1. Komunikovat s okolím (nejčastěji přes uart).
2. Zapisovat do aplikační sekce, to jest do paměti ve které sám sídlí.
Bootloader používáme k zapsání programu do mproc.
Prostě mproc připojíme seriovou linkou k PC a posíláme příkazy:
na adresu 0 zapiš 0xa111
na adresu 1 zapiš 0xb212
na adresu 2 zapiš 0xc313
atd.
Tím pádem nepotřebujeme žádný programátor (HW).
Praktický postup při programování přes bootloader je stejný jako přes programátor.
Např v Avrdude jenom změníme typ programátoru na bootloader. Ostatní příkazy se nemění.
(Pokud pošleme příkaz Chip Erase, vymaže se jenom aplikační sekce. Sám sebe bootloader nevymaže.)