Ich muss innerhalb eines Monats einen Roboter für einen Wettbewerb bauen. Früher habe ich Arduinos für meine Projekte verwendet, bin aber dazu übergegangen, nur Code mit avrdude auf eigenständige AVR-Mikrocontroller zu flashen.
Ich dachte, nur weil ich die Arduino-Hardware nicht mehr verwende, gibt es einen Grund, für einige Projekte keinen Arduino-Bootloader auf meine Mikrocontroller zu brennen? Gibt es Szenarien (wie meine aktuelle Aufgabe), in denen dies tatsächlich von Vorteil wäre?
Es ist etwas einfacher, Code für einen Arduino zu schreiben, und es gibt mehrere Open-Source-Bibliotheken. Ich bin mir sicher, dass es noch andere wichtige Vor- (und Nachteile) gibt, die ich nicht kenne, aber gerne wissen würde.
Unter welchen Szenarien wäre es im Wesentlichen eine gute Idee, einen Arduino-Bootloader auf meinen Mikrocontroller zu brennen.
Die grundlegende Antwort ist, dass manche Leute keinen Programmierer kaufen oder bauen wollen. Sie benötigen lediglich eine serielle Schnittstelle, um den IC mit einem Bootloader zu programmieren. Es ist billiger.
Oder irgendwann möchten Sie Ihren Code vor Ort aktualisieren können, ohne Ihren teuren Programmierer zu verwenden. Dann ist ein Bootloader in Ordnung.
Aber wenn Sie über die Nutzung Ihres Systems nachdenken und keinen Bedarf für einen Bootloader finden, gibt es keinen Grund, ihn zu behalten. Es braucht Flash-Speicherplatz für nichts.
Der Arduino-Bootloader ist nur ein Bootloader: etwas, das es dem Chip ermöglicht, sich beim Booten mit neuen Daten zu programmieren. Nichts anderes. Ob Sie es haben oder nicht, wirkt sich also nicht auf Ihre Codeleistung aus (mit Ausnahme des verfügbaren Flash-Speicherplatzes oder der Startverzögerung).
Damit ist deine Frage beantwortet:
Dies mag ein bisschen oberflächlich erscheinen, aber wenn Sie feststellen, dass Sie den Arduino-Bootloader nicht benötigen (weil Sie Ihren AtmegaXXX nicht über eine serielle Verbindung im Schaltkreis neu flashen müssen), benötigen Sie keinen Bootloader. Das ist alles, was ein Bootloader für Sie erledigt.
Im Allgemeinen habe ich festgestellt, dass die Beibehaltung des Arduino-Bootloaders auf meinen Atmega-Mikrocontrollern sie im Feld flexibler macht. Aber meine werden nicht für freistehende Roboter verwendet; Sie werden in Geräte- und Anlagensteuerungen verwendet, normalerweise am Ende langer RS-232-Verbindungen. Ich kann an meinem Hauptcomputer sitzen und nach Lust und Laune neue Firmware auf sie hochladen, und es fühlt sich ein bisschen an, als würde ich Firmware auf eine Marssonde hochladen. Ich würde es nicht anders wollen.
Chris Stratton
capcom