Hallo. Ich beschäftige mich seit kurzem mit der Programmierung von Mikrocontrollern. Jetzt habe ich schon öfters was über den Bootloader gelesen. Wie ich das verstanden habe ist der Bootloader dafür zuständig das dass geschriebene Programm in den Flashspeicher geladen werden kann. Wie ist es denn jetzt z.B mit dem AVR NetIO von Pollin? Da ist ja wahrscheinlich auch ein Bootloader drauf. Wie funktioniert es denn wenn ich jetzt mein eigenes Programm über ISP in den ATMega32 laden will. funktioniert das denn mit den vorprogrammierten Bootloader oder ist der Bootloader nur für die von Pollin vorgesehene Software (Netserver)? Und was ist wenn ich ein nackten nagelneuen ATMega habe und den Pogrammieren will. Muss ich vorher ein Bootloader in den Controller brennen bevor ich ihn Programmieren kann? Vielen Dank schon mal für die Antworten mfg
Einen Bootloader brauchst du nur wenn du den Controller per RS232 oder sonst wie programmieren willst. Wenn du das per ISP machen willst, braust gar keinen Bootloader, da kann der Controller auch absolut leer sein.
Hi, da ich eine sehr ähnliche Frage habe, wollte ich mich hier ranhängen anstatt einen gleichartigen Thread aufzumachen. Ich habe soeben vermutlich meinen ATMEGA32 16PU geschrottet und habe nun ein sehr günstiges Angebot für ATMEGA328P mit Arduino UNO Bootloader entdeckt. Wenn ich den Thread richtig verstanden habe, dann ist der Bootloader für mich unerheblich, da ich über den AVRISP MKII flashen möchte. D.h. ein fabrikneuer ATMEGA32 hat gar keinen Bootloader und braucht ihn auch nicht, wenn er mit einem ISP geschrieben wird? Der Bootloader wird also nur gebraucht wenn man über ein Board programmieren will? Und wenn einer drauf ist, stört das nicht? Ich bin verwirrt :) danke und lg
Flo schrieb: > Und wenn > einer drauf ist, stört das nicht? Ich bin verwirrt :) Wenn die Fuses auf Bootloaderbetrieb stehen, aber kein Bootloader drauf ist, das Programm aber bis oben reicht, wirst du Fehlfunktion ernten. Also: Wenn du deinen 328 per ISP beschreibst, solltest du auch die Fuses ändern. Flo schrieb: > ein fabrikneuer ATMEGA32 hat gar keinen Bootloader Ein fabrikneuer ATMEGA328P auch nicht.
Hallo Ulrich und danke für die Antwort. Habe mich zwischenzeitlich mal registriert. D.h. wenn ich dich richtig verstehe dann wurde diesem 328P ein Arduino Bootloader aufgespielt, damit man ihn gleich mit Arduino Board- und IDE verwenden kann? Ich kann diese µC also problemlos kaufen/verwenden, muss nur einmal die Fuse-Bits richtig setzen? Das hilft mir schon weiter, dann kann ich die Bestellung schon aufgeben :) danke für deine Hilfe!
> meinen ATMEGA32 16PU geschrottet ... > Angebot für ATMEGA328P Damit keine Missverständnisse aufkommen: der 328 hat deutlich weniger Anschlüsse als der 32, ist also kein gleichwertiger Ersatz.
S. Landolt schrieb: >> meinen ATMEGA32 16PU geschrottet ... >> Angebot für ATMEGA328P > Damit keine Missverständnisse aufkommen: der 328 hat deutlich weniger > Anschlüsse als der 32, ist also kein gleichwertiger Ersatz. Ja danke, das ist mir klar. Viel mehr als einen LED-Fader mit RGB-LEDs werde ich damit nicht umsetzen, wollte damit anfangen und dann schrittweise vll. noch Infrarot-Diode f. Fernsteuerung dazubauen. Alles in allem komme ich mit den 24 IO Pins aber leicht aus (oder übersehe ich etwas?).
Flo F. schrieb: > oder übersehe ich > etwas? Weiß nicht.... Der 328 ist ein durchaus brauchbarer Prozessor. Der genau das macht, was im Datenblatt steht.
Mit einem Bootloader erreichst Du üblicherweise alles außer dem Bootloader selbst. Der allerdings benötigt einiges an Speicher für sich selber. Weniger freies FLASH. Vorteil: Du kannst das Teil über einen seriellen Anschluss USBeh, RS232 oder andere serielle Kandidaten neu programmieren. Über den ISP kannst Du dem Teil sowohl einen (Deinen) neuen Bootloader verpassen, als auch Dein Programm neu aufspielen. Oder beides. Natürlich sind dabei die zugehörigen Sicherungen zu berücksichtigen, da die Bootprozesse funktionell voneinander abweichen. Vorteil: Du kannst praktisch 100% des verfügbaren Speichers verwenden. Nachteil: Du brauchst einen ISP.
Matthias H. schrieb: > Wie ich das verstanden habe ist der Bootloader dafür zuständig das dass > geschriebene Programm in den Flashspeicher geladen werden kann. Jeder Hersteller außer Atmel liefert uC mit seriellem Bootloader aus. Solange der Flash leer ist, ist der Bootloader nach Power-Up aktiv und man kann mit einem USB-seriell-Kabel über Terminal das HEX-File laden (ohne Programmer). Bei fortschrittlichen Herstellern ist der Bootloader sogar in einem ROM oder in einer Lock Page, damit der nicht versehentlich von einem zu großen HEX-File überschrieben werden kann. Üblicherweise gibt es einen Bootloader-Pin der bei Power-Up geprüft wird. Ulrich F. schrieb: > Wenn du deinen 328 per ISP beschreibst, solltest du auch die Fuses > ändern. Kein Hersteller außer Atmel nutzt für uC Fuses (Fehlerquelle Nr. 1 für Anfänger)
Lothar schrieb: > Kein Hersteller außer Atmel nutzt für uC Fuses (Fehlerquelle Nr. 1 für > Anfänger) scheint so als hätte sich Atmel bereits einen guten Ruf gemacht ;) Welche µC würdest du für Anfänger empfehlen? Ich habe übrigens einen MKII hier herumliegen, sollte also kein Problem sein.
:
Bearbeitet durch User
@Lothar: Und die Config-Bytes bei den PICs sind keine Fuses? - Gleicher Wein in gleich alten Schläuchen...heißt nur anders! Bei Cypress heißt es dann Non-volatile latches, ist im Prinzip aber genau der gleiche Quark. Was willst Du uns eigentlich erzählen? Bootloader-Applikationen sind, wenn sie klein sein müssen, auf einen bestimmten Zweck zugeschnitten. Kaum ein Hersteller liefert seine µCs mit geflashtem Bootloader aus, es sei denn man bestellt >1k von den Dingern, dann kann man sich das auch aussuchen. Die "Stangenware" ist immer nackig. - Dass Dein Horizont ggf. nicht über irgendwelche Eval-Bretter mit integriertem Bootloader hinaus reicht, können wir nichts dafür. Viele Grüße! Sven
Sven L. schrieb: > Die "Stangenware" ist immer nackig Silabs liefert schon den kleinsten EFM8BB10F2 für 30 Cent mit Pre-Programmed Bootloader. NXP liefert alle 8051 mit Flash-Bootloader und alle ARM mit ROM-Bootloader schon ab DIP-8. STM alle ARM mit Bootloader. STC alle mit Flash-Bootloader. Übrigens liefert sogar Atmel einige ausgesuchte uC mit Pre-Programmed Bootloader für die Erstprogrammierung mit FLIP Sven L. schrieb: > Bootloader-Applikationen sind, wenn sie klein sein müssen, auf einen > bestimmten Zweck zugeschnitten. Was für ein Zweck? Der Zweck ist das HEX-File auf den uC zu schaffen. Damit ist es sogar möglich, zuerst zu bestücken und dann über RX/TX zu flashen, also nur zwei Kontakte. Da die meisten uC verschiebbare Vektortabellen haben, kann man bei einmaliger Anwendung dann auch den Bootloader überschreiben und den gesamten Flash nutzen.
Lothar schrieb: > Da die meisten uC verschiebbare > Vektortabellen haben, kann man bei einmaliger Anwendung dann auch den > Bootloader überschreiben und den gesamten Flash nutzen. kann ich mir gerade nicht vorstellen, den Bootloader sich selbst überschreiben lassen, ist das nicht den Ast absägen auf dem man gerade sitzt
8051 - Technik von Vorvorgestern. Gut, mann muss wahrscheinlich jenseits der 50 Jahre alt sein, um sich so was anzutun. STM32 - Jetzt mal ehrlich: Die Qualität der Doku ist unter aller Sau! Dann haben die Dinger noch jede Menge Hardware-Errata, die nicht oder nur unzureichend dokumentiert sind. Ich sage nur I²C... - Wenn man damit ernsthaft ein Projekt umsetzen will, muss man ausreichend Reserven (finanziell und zeitlich) einplanen. Ob Bootloader oder nicht, liegt nicht am Kern, sondern ist einfach eine Policy des Herstellers. Kannst ja mal einen Fresscale i.MX nehmen, da ist nackig auch nichts dabei, außer ein paar Boot-Switches, die feste Sprungadressen in verschiedenen Speichern anspringen. SiLabs-Controller habe ich noch nicht benutzt, vielleicht ist das mal einen Blick wert!? Es gibt jedenfalls auch für den Anwendungszweck zugeschnittene Bootloader. Zum Beispiel ein Bootloader über Modbus RTU und RS-485, der zwar letztendlich auch UART benutzt, aber noch High-Level-Protokoll mitbringt. Oder Update über beliebige Feldbussysteme. Mit Atmel's FLIP habe ich auch schon arbeiten müssen. Das Tool ist mehr oder weniger Pain in the *rse, dann schon eins der verfügbaren OpenSource-Tools, die das gleiche Protokoll können. Du siehst, der Anwendungszweck für einen Bootloader über UART ohne irgendwelche High-Level-Protokolle ist recht eingeschränkt. Nicht jeder Entwickler lässt eine UART brach liegen, über die dann im Zweifelsfall geflasht werden kann. - In der Entwicklung hat man einen vernünftigen ISP- oder ICSP-Programmer oder der Prototyp führt diese UART nach draußen. Die Serienfertigung sieht ganz anders aus. @Flo: Ich würde schon mit den AVRs anfangen. Die 8-Bitter sind für den Einstieg komplex genug und verlangen nach effektiver Programmierung, wenn man damit mehr machen will als nur ein paar LEDs blinken zu lassen. Atmel glänzt mit einer sehr aktiven Community und ausgezeichneter Dokumentation, die wohl auch ein ausschlaggebender Grund für die Community ist. Das Forum hat nicht umsonst einen "AVR" als Favicon im Browder. ;) Werden die Atmegas zu klein, kann Du über den Tellerrand schauen nach einem ARM-Core oder SoC. Persönlich interessant finde ich den Cypress PSoC 5LP, ein Cortex-M0 mit FPGA in einem TQFP-100-Gehäuse. Damit lassen sich sehr spezialisierte Schaltungen zu großen Teilen in den FPGA legen oder mittels der digitalen Filterblöcken direkte Signalverarbeitung mit dem schnellen ADC und DAC des ICs machen. Auch ein SDR-Radio lässt sich mit so einem Controller bauen. - Leider sind sie nicht ganz günstig (so um die 10$ pro Stück) und die Community ist kaum existent. Die Dokumentation und die Entwicklungsumgebung sind dagegen aber gut. Viele Grüße! Sven
Sven L. schrieb: > Nicht jeder Entwickler lässt eine UART brach liegen, über die > dann im Zweifelsfall geflasht werden kann. Das ist bei den meisten 8051 und ARM auch nicht nötig weil die eine Switchmatrix/Crossbar o.ä. haben d.h. wenn der Bootloader läuft sind die UART0 Pins anders geroutet als wenn das Programm läuft. Sven L. schrieb: > SiLabs-Controller habe ich noch nicht benutzt, vielleicht ist das mal > einen Blick wert!? Das sind 8051 :-) erst Anfang des Jahres ist die neue EFM8 Serie rausgekommen: für 1 EUR bis zu 72 MHz und 20x 14-bit ADC und 4x 12-bit DAC http://community.silabs.com/t5/Projects/EFM8-8-bit-Microcontroller-Oscilloscope-Demo/m-p/140609 Die SiLabs EFM32 Serie gehört leider zu den ARM mit etwas zu komplexer Peripherie und entsprechend umfangreicher Doku. Sven L. schrieb: > STM32 - Jetzt mal ehrlich: Die Qualität der Doku ist unter aller Sau! Zustimmung, zum Vergleich mal eine NXP LPC ARM Doku ansehen. Allerdings hat sich STM32 trotzdem fast überall durchgesetzt, ist also kein Hinderungsgrund.
Hallo Sven, hallo Lothar, danke für eure Sichtweise der Dinge. @Sven: ja, ich finde die AVRs für den Anfang auch komplex genug. Insbesondere wenn das schon eine "sehr gute" Doku ist, hätte es wenig Sinn mit weniger guter Doku zu beginnen ^^ Bin ja mit den PDFs schon manchmal überfordert, bin ich doch als Informatiker anderen Umfang an APIs/Dokus gewöhnt. Apropos: durchaus auch mal erfrischend, von einer technischen Diskussion nur einen Bruchteil zu verstehen :-D
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.