Arra az utasításra kaptam, hogy "égesse el a bootloadert" az Arduino-n, hogy kijavítsam a hibát. Hogyan tudom ezt megtenni? (És mi is pontosan a bootloader?)
Arra az utasításra kaptam, hogy "égesse el a bootloadert" az Arduino-n, hogy kijavítsam a hibát. Hogyan tudom ezt megtenni? (És mi is pontosan a bootloader?)
A bootloader egy kis program, amely (majdnem) mindig Arduino-n van. Kezeli az Ön által készített vázlatok feltöltését és indítását, és villog a 13-as tű LED-je, valahányszor a tábla visszaáll.
A rendszerbetöltő kiírása:
Tools ► Board ► Board ►
elemét használja. Ellenőrizze ezt még akkor is, ha helyesen tudja feltölteni a programokat; a feltöltéshez nem mindig szükséges a megfelelő tábla. Eszközök ► Programozó ►
menüpontban. Eszközök ► Bootloader írása , és várjon. Nem tarthat tovább egy percnél, és gyakran csak néhány másodpercet vesz igénybe.
Források:
És mi is pontosan a bootloader?
A bootloader egy kis kóddarab, amely a programmemória "magas" részében található. Normál esetben az új vázlatok feltöltésekor nem törlődik. Célja, hogy a visszaállítás után azonnal aktiválódjon (a biztosítékok úgy vannak beállítva, hogy a 0x0000 cím helyett a bootloader címen kezdjék meg a kódot). A rendszerbetöltő rövid ideig (például egy másodpercig) vár, hogy megérkezzen-e "programozási" adat a soros portra.
Ha igen, akkor elolvassa ezeket az adatokat és dekódolja. a flash memória többi részének újraprogramozásához. A feltöltő programmal együtt (általában avrdude) az új vázlatot a soros porton keresztül küldi el. A rendszerbetöltő törli a flash memória oldalait, és kicseréli azokat az új kóddal. Miután elkészült, végrehajtja az új kódot.
Ha nem érkeznek utasítások, a rendszerbetöltő a 0x0000 címre ugrik, hogy végrehajtja a táblán lévő meglévő vázlatot.
A rendszerbetöltő programozásának alternatív módja az, ha egy vázlatot használok, amelyet egy ideje írtam, és amely a következőn fut:
A "programozó" tábla futtatja a vázlatot, amely Rendszerindítót tartalmaz számos táblához, amelyeket keményen kódolnak. Csatlakoztatja a programozótáblát a céltáblához (a rendszerbetöltőt igénylő táblához) 6 összekötő vezetékkel, az ábra szerint.
Az adott fotó szemlélteti az egyik Uno programozását egyet.
Futtatja a vázlatot (a Serial Monitor segítségével működik, hogy parancsokat adjon neki). Először azonosítja a cél chipet:
Atmega chip programozó. Írta: Nick Gammon. Beállított programozási mód OK. Aláírás = 0x1E 0x95 0x0F processzor = ATmega328PFlash memória mérete = 32768 bájt. LFuse = 0xFF HFuse = 0xDE EFuse = 0xFD Lock byte = 0xCF Bootloader address = 0x7E00Bootloader length = 512 bájt.
Írja be az „L” szót a Lilypad (8 MHz) betöltő használatához, vagy az „U” az Uno (16 MHz) betöltőhöz ... Írja be a „G” parancsot a chip programozásához a rendszerbetöltővel ...
A programozáshoz nyomja meg a G billentyűt.
Chip törlése ... Bootloader írása ... 0x7E00-tól kezdődő oldal véglegesítése 0x7E80-tól kezdődő oldal véglegesítése 0x7F00-tól kezdődő oldal végrehajtása 0x7F80Written kezdetű oldal. Ellenőrzés ... Nem található hiba. Biztosítékok írása ... LFuse = 0xFF HFuse = 0xDE EFuse = 0xFD Lock byte = 0xCF Done. Írja be a „C” parancsot, ha készen áll egy másik chip folytatására ...
Egy Uno számára ez egy másodpercet vesz igénybe. A Mega2560 programozása 3 másodpercet vesz igénybe.
Részletes utasítások az Atmega bootloader programozónál
A kód letölthető a Github oldalról: nickgammon / arduino_sketches