Ich bin sehr neu in der eingebetteten Welt. Ich hatte bis jetzt nur an S / W gearbeitet
Kann mir bitte jemand die Verwendung des Arduino Bootloaders erklären? Ich möchte, dass Arduino eine einfache Mathematik mit einigen zusätzlichen Komponenten ausführt, die in den Chip eingefügt werden müssen.
Benötige ich unbedingt einen Bootloader?
quelle
Der Arduino benötigt einen Bootloader, um Ihre Skizzen über seriell / USB zu programmieren. Ohne sie benötigen Sie einen AVR In-System-Programmer (ISP), um den Flash-Speicher im AVR-Chip direkt zu programmieren.
Wenn Sie einen Arduino kaufen, wird der Bootloader bereits in den AVR-Chip eingebrannt. Sie müssen sich nur darum kümmern, wenn Sie Ihr eigenes Board bauen.
Dies sollte helfen: Ich verstehe das Arduino-Konzept nicht
quelle
Ich werde eine etwas theoretischere Antwort geben; Die anderen Antworten sind aus praktischer Sicht recht gut. Ein Bootloader ist Code, der sich in einem speziellen Segment des Flash-Speichers befindet. Code, der sich in diesem Segment befindet, darf Anweisungen zur Selbstprogrammierung ausführen, wodurch der Flash-Speicher (dh der Benutzercode) ohne einen herkömmlichen Programmierer (z. B. In-System Programming ISP oder High-Voltage Programming HVP) wie den STK500 geändert werden kann oder AVRISP mkII.
Im Prinzip führt die UART Recieve Data Interrupt Service Routine (ISR) einen Funktionsaufruf in den Bootloader-Code durch, der das seriell gesendete Programmabbild in den Benutzerprogrammbereich im Flash-Speicher kopiert. Beim Start wird jedes Programm auf dem Chip gestartet. Wenn jedoch entsprechend geformte serielle Daten frühzeitig empfangen werden, wechselt der AVR in eine Art Selbstprogrammiermodus. Es gibt eine Logik im UART ISR, die während des Startvorgangs nur für kurze Zeit auf den Bootloader-Code zurückgreift. Die Details sind etwas komplizierter, aber das ist die Grundidee.
Das Schöne daran ist, dass Sie ein Arduino kaufen können und sonst nichts, die kostenlose integrierte Entwicklungsumgebung (IDE) herunterladen, Arduino-Skizzen (Programme) schreiben und sie einfach so über USB auf den AVR herunterladen können, nicht weniger danke auf den schicken kleinen FTDI-IC-Chip, der in das Arduino-Board integriert ist.
quelle