Kérdés:
Hogyan kell beírni a rendszerbetöltőt?
The Guy with The Hat
2014-02-27 04:09:57 UTC
view on stackexchange narkive permalink

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?)

Nagyon egyszerű a bootloader írása arduino-ra, feltéve, hogy a megfelelő lépéseket követed. Ez a videó segíthet: [YouTube - Hogyan kell a rendszerindítót égetni ATMEGA328P-AU-ra (SMD) | Házi készítésű ARDUINO MINI] (https://youtu.be/mIq3ZsKPlTo)
Kettő válaszokat:
The Guy with The Hat
2014-02-27 04:09:57 UTC
view on stackexchange narkive permalink

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:

  1. > AVR ISP, USBtinyISP, ParallelProgrammer vagy másik Arduino alaplap. Ez lesz az Ön internetszolgáltatója.
  2. Hacsak másképp nem utasítjuk, csatlakoztassa az internetszolgáltatót a táblán lévő ICSP-csatlakozókhoz.
  3. Táplálja a kártyát USB-kábellel vagy külső tápegységgel. / li>
  4. Nyissa meg az Arduino IDE-t.
  5. Győződjön meg arról, hogy a megfelelő táblát választotta, amelyikre az IDE 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.
  6. Válassza ki a megfelelő programozót az Eszközök ► Programozó ► menüpontban.
  7. Kattintson a 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:

Az AVRISP ezen a ponton nagyjából EOL (az élet vége). Legalább egy AVRISPmk2-t szeretne. Rengeteg más, rajongó eszköz is található (például AVR One!). Valószínűleg csak azt kell mondania, hogy "{line 1} vagy más dedikált internetszolgáltató programozó."
Az Arduino Yunhoz hasonló táblákon minden alkalommal, amikor "wifi-n keresztül feltöltesz", akkor a rendszerbetöltőt a vázlatoddal egyesítve égeted. Ez annak köszönhető, hogy a Linux CPU SPI-n keresztül csatlakozik az AVR MCU-hoz, így szoftveresen utánozhatja az internetszolgáltatót.
@FedericoFissore - ezért tart ilyen sokáig?
Igen, ez és az a tény, hogy a GPIO bitbanging lassabb. Folyamatos erőfeszítések vannak annak felgyorsítására.
Nick Gammon
2015-07-21 02:11:40 UTC
view on stackexchange narkive permalink

Mi az a bootloader?

É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ő cseréje

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:

  • Uno (vagy hasonló, például Duemilanove)
  • Leonardo
  • Mega2560

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.

Bootloader programmer for Uno

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

Ki kell választania a chip típusát, amire éget (Eszközök-> Board ..)? Milyen táblát válasszak, amikor a rendszerbetöltőt különálló chipként égetem?
Az IDE-ben kiválaszthatja az alaplap típusát *, amelyet a rendszerbetöltő * megírásához használ. A rendszerbetöltő vázlata automatikusan felismeri a céllap típusát.


Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...