Ich muss innerhalb eines Monats einen Roboter für einen Wettbewerb bauen. Ich habe Arduinos für meine Projekte verwendet, bin aber dazu übergegangen, nur Code mit avrdude zu eigenständigen AVR-Mikrocontrollern zu flashen.
Ich dachte, nur weil ich die Arduino-Hardware nicht mehr benutze, 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 ein Arduino zu schreiben, und es gibt mehrere Open-Source-Bibliotheken. Ich bin sicher, dass es andere wichtige Vor- und Nachteile gibt, die mir nicht bekannt sind, die ich aber gerne kennen würde.
Unter welchen Szenarien wäre es im Wesentlichen eine gute Idee, einen Arduino-Bootloader auf meinen Mikrocontroller zu brennen.
quelle
Antworten:
Die grundlegende Antwort ist, dass einige Leute keinen Programmierer kaufen oder machen wollen. Sie benötigen lediglich eine serielle Schnittstelle, um den IC mit einem Bootloader zu programmieren. Es ist billiger.
Oder manchmal möchten Sie in der Lage sein, Ihren Code vor Ort zu aktualisieren, ohne Ihren teuren Programmierer zu verwenden. Dann ist ein Bootloader in Ordnung.
Wenn Sie jedoch über die Verwendung Ihres Systems nachdenken und keinen Bootloader benötigen, gibt es keinen Grund, diesen beizubehalten. Es braucht Flash-Platz für nichts.
Der Arduino-Bootloader ist nur ein Bootloader: Damit kann sich der Chip beim Booten selbst mit neuen Daten programmieren. Nichts anderes. Wenn Sie es haben oder nicht, wirkt sich dies nicht auf Ihre Codeleistung aus (mit Ausnahme des verfügbaren Flash-Speicherplatzes oder der Startverzögerung).
So beantworten Sie Ihre Frage:
quelle
Dies mag ein bisschen unangenehm erscheinen, aber wenn Sie den Arduino-Bootloader nicht benötigen (weil Sie Ihren AtmegaXXX nicht über eine serielle Verbindung im Stromkreis neu flashen müssen), benötigen Sie keinen Bootloader. Das ist alles, was ein Bootloader für Sie tut.
Im Allgemeinen habe ich festgestellt, dass der Arduino-Bootloader auf meinen Atmega-Mikrocontrollern im Feld flexibler ist. Aber meine werden nicht für freistehende Roboter verwendet; Sie werden in Geräten und Anlagensteuerungen verwendet, normalerweise am Ende langer RS-232-Verbindungen. Ich kann an meinem Hauptcomputer sitzen und nach Belieben neue Firmware auf sie hochladen, und es fühlt sich ein wenig so an, als würde ich Firmware auf eine Mars-Sonde hochladen. Ich würde es nicht anders wollen.
quelle