Poinstruowano mnie, aby „wypalić bootloader” na moim Arduino, aby naprawić błąd, który się pojawiał. W jaki sposób mogę to zrobić? (A czym dokładnie jest bootloader?)
bootloader
Facet z kapeluszem
źródło
źródło
Odpowiedzi:
Bootloader to mały program, który jest (prawie) zawsze na Arduino. Zarządza przesyłaniem i uruchamianiem wykonanych szkiców oraz miga diodą LED pin 13 za każdym razem, gdy płyta resetuje się.
Aby nagrać program ładujący:
Tools ► Board ►
w IDE wybrałeś odpowiednią płytę, do której chcesz nagrywać. Sprawdź to dwukrotnie, nawet jeśli możesz poprawnie wgrać programy; przesyłanie nie zawsze wymaga odpowiedniej tablicy.Tools ► Programmer ►
.Tools ► Burn Bootloader
i poczekaj. Nie powinno to zająć więcej niż minutę i często zajmuje tylko kilka sekund.Źródła:
źródło
{line 1} or other dedicated ISP programmer.
Co to jest bootloader?
Program ładujący to niewielki fragment kodu znajdujący się w „wysokiej” części pamięci programu. Zwykle nie jest usuwany podczas przesyłania nowych szkiców. Jego celem jest aktywacja natychmiast po resecie (bezpieczniki są skonfigurowane do uruchamiania kodu pod adresem bootloadera zamiast adresu 0x0000). Program ładujący zaczeka krótko (na przykład jedną sekundę), aby sprawdzić, czy dane „programujące” docierają do portu szeregowego.
Jeśli tak, odczytuje te dane i dekoduje je, aby przeprogramować pozostałą część pamięci flash. Współpracując z programem do przesyłania (zwykle avrdude) nowy szkic jest wysyłany przez port szeregowy. Program ładujący usuwa strony pamięci flash i zastępuje je nowym kodem. Po zakończeniu wykonuje nowy kod.
Jeśli nie otrzymają żadnych instrukcji, program ładujący przeskakuje na adres 0x0000, aby wykonać istniejący szkic na płycie.
Jak wymienić bootloader
Alternatywną metodą programowania programu ładującego jest użycie szkicu, który napisałem jakiś czas temu, który działa na:
Płytka „programująca” uruchamia szkic, który zawiera bootloadery dla wielu na stałe zakodowanych w nim kart. Podłączasz płytę programującą do płyty docelowej (płyty wymagającej bootloadera) za pomocą 6 przewodów do podłączenia, jak pokazano.
To konkretne zdjęcie ilustruje, że jeden program Uno programuje inny.
Uruchamiasz szkic (działając za pomocą Monitora szeregowego, aby wydawać mu polecenia). Najpierw identyfikuje docelowy układ:
Naciśnięcie G powoduje zaprogramowanie.
W przypadku Uno zajmuje to sekundę. Zaprogramowanie Mega2560 zajmuje 3 sekundy.
Szczegółowe instrukcje w programatorze rozruchowym Atmega
Kod można pobrać z Github: nickgammon / arduino_sketches
źródło