Co je bootloader?

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
mbrazdil
Příspěvky: 39
Registrován: 20 kvě 2012, 00:00

Co je bootloader?

#1 Příspěvek od mbrazdil »

Zdravim Vas,

mohl by mi prosim nekdo vysvetlit k cemu je dobry "bootloader" u MCU?
Uživatelský avatar
Habesan
Příspěvky: 7376
Registrován: 12 led 2009, 00:00
Bydliště: Plzeňsko
Kontaktovat uživatele:

#2 Příspěvek od Habesan »

Klidně pokračuj v minulém vlákně, také očekávám, že se pochlubíš dalším vývojem pracovního poměru.

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.
Sháním hasičák s CO2 "sněhový", raději funkční.
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
Uživatelský avatar
alvr
Příspěvky: 288
Registrován: 25 led 2008, 00:00

#3 Příspěvek od alvr »

Taky jsem ted v datasheetu Atmega644 cetl o bootloaderu a nevim na co bych ho mohl pouzit. Z toho popisu jsem nepochopil ani jak ho aplikovat ani k cemu :-( Budu si to muset precist nekolikrat :-) Muze nekdo dat jeste vice moznych prikladu pro lepsi predstavu?
Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 00:00

#4 Příspěvek od AB1 »

Ve stručnosti asi takto:

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.)
Uživatelský avatar
alvr
Příspěvky: 288
Registrován: 25 led 2008, 00:00

#5 Příspěvek od alvr »

OK, chapu. A ma to nejake dobre vyuziti i co se tyce behu samotneho programu?
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#6 Příspěvek od Panda38 »

Při běhu programu bývá bootloader odstavený a neuplatní se. Používá se v zařízeních umožňujících updatovat firmware (protože jinak program sám sebe nahradit nemůže).
p32
Příspěvky: 16427
Registrován: 13 led 2007, 00:00

#7 Příspěvek od p32 »

Např. z těch zařízení to je DVD přehrávač, kde jde tímto způsobem nahrát vlastní program, tzn. jeho aktualizaci. Většinou jsem to používal v případech, kdy si uživatel špatně nahrál aktualizaci přes DVD médium a přehrávač se zaseknul a nefungoval. To samé se používá u satelitních přijímačů, praček, televizí, ale tam se to dělá přes sériový port a až když je nejhůř, tak se vleze opět dovnitř na piny pro to tam dané.
Uživatelský avatar
mbrazdil
Příspěvky: 39
Registrován: 20 kvě 2012, 00:00

#8 Příspěvek od mbrazdil »

Takze pokud jsem to vsechno dobre pochopil, tak bootloader je jen a pouze k nahravani noveho SW do mcu, je to tak? Bootloader nema vubec nic spolecneho napr. s real-time posilani informaci ze snimace do PC.
Uživatelský avatar
Habesan
Příspěvky: 7376
Registrován: 12 led 2009, 00:00
Bydliště: Plzeňsko
Kontaktovat uživatele:

#9 Příspěvek od Habesan »

Ano, všeobecně.
Tedy dovedu si představit, že v tom bootloaderu bys mohl mít podprogram pro sériový port, který bys mohl volat i při běžném provozu, kdybys potřeboval.
Sháním hasičák s CO2 "sněhový", raději funkční.
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“