Habe hier öfters von Bootloadern gehört. Was für Vorteile hat es und wann/bei was benutzt man sowas? Ist es vergleichbar mit einen PC ? Das man verschiede Programme aktvieren kann ( z.B-Analog : Windows und LINUX)? Gruss Dirk
Hallo, etwas falsche Rubrik erwischt oder? >Habe hier öfters von Bootloadern gehört. >Was für Vorteile hat es und wann/bei was benutzt man sowas? Vorteile: Firmwareupdate ueber x beliebige Schnittstelle(usb/rs232 , can , rs485 , twi usw.) >Ist es vergleichbar mit einen PC ? Das man verschiede Programme >aktvieren kann ( z.B-Analog : Windows und LINUX)? Die Moeglichkeit besteht natuerlich die Programme auf eine SD Card zupacken und mittels bootloader die verschiedenen Versionen einzuladen. Einfacherer waere es ueber einen Inputpin den man abfragt , dann muessen aber die verschiednen Programme in den internen Flash des µC passen. Dirk
Ein bootloader eine funktion, die manche controller haben, dass sie beim reset ein programm ausführen, dass an einer bestimmten speicherstelle steht. so kann man z.b. einfach über das UART den controller programmieren.
@Hauke Radtki das könnte man mit einen Programm machen der auf den AVR geflasht wird dann über UART entsprechend eingestellt "programmiert" wird. Wozu brauche ich dann den Bootloader? @Dirk - Ups sorry- mit der Rubrik Das Update kann ich auch über ISP machen ( SPI-Schnittstelle ) Ich sehe jetzt nicht die grossen Vorteile, nur das es mehr Speicher braucht.
Hi SPI ist u.U. schlecht zugänglich. Ich denke da z.B. an einen Chip im Reaktordruckgefäß in einem Druckwasserreaktors der über RS485 vernetzt ist. Da kann man nicht mal schnell mit dem Laptop und einem SPI-Programmer ran ohne anschließend mehrere Jahrtausende endgelegert werden zu müssen ;-) Matthias
Der Programer ist ISP , ich meinte die SPI Schnittstelle welche der ISP benutzt und das ist doch auch ein BUS (Master - Slave) System auf Serielleart. Also gibts Nochwas wann man den Bootloader einsetzt, bis jetzt sehe ich keinen Grund den Bootloader zu benutzen. Oder ist die Länge der Leitung der SPI beschränkt?
Man muss ja nicht gleich das Ding in einen Reaktor versenken (würde da glaub ich auch nicht allzulange funktionieren), aber es gibt Unmengen von Geräten, die irgendwie an der "langen Strippe" hängen. Und ein Software-update per Modem-Verbindung ist die kostengünstigste und schnellste Möglichkeit. Ebenso ein Vorteil: das Aufspielen der Software in der Endfertigung. Oft haben Geräte sowieso Schnittstellen, die kann dann dafür benutzt werden, ohne extra einen ISP-Anschluss auf der Platine vorzusehen (kostet auch Geld und Platz, behindert ein wenig in der Verwendung der Ports bzw. erfordert an den betreffenden Pins weiter Massnahmen). Den Bootlader kann man in Stückzahlen preiswert von einem Dienstleister auch in MLF-Gehäusen brennen lassen (alle bekommen also dasselbe Programm) und können dann in verschiedenen Geräten eingesetzt werden.
Du möchtest deinen Kunden die Möglichkeit geben ihre Geräte mit neuester Software updaten zu können, (in vielen Bereichen ist es kein "möchte" sondern "du musst"). Jetzt willst du aber eben nicht die sehr leicht "reverse-engeenier"-baren HEX Files den Kunden per Mail schicken. Denn das wäre ein Einfaches zu hacken. Deshalb benutzt du einen Bootloader mit Verschlüsselung und hast ganz nebenbei sogar noch die RS232 als Schnittstelle, was für den Kunden wohl leichter ist als eine eigene SPI Schnittstelle an den PC zu basteln. Due sendest die verschlüsselten HEX Files per Mail, und nur der Zielprozessor mit seinem spez. Bootloader und Entschlüsselung kann dieses HEX File laden. Gruß Hagen
@all Seit einiger Zeit lese ich immer wieder interessiert von Bootloadern. Nun gibt es ja aber eine ganze Menge davon: MegaLoad, Peter Danneggers, Matthias Weißers u.v.a. Nur, mit welchem sollte man anfangen? Welcher Vor- und Nachteile haben die verschiedenen Bootloader? Die Aufgabe eines jeden Bootloaders sollte ja immer gleich sein: nämlich den eigentlichen Programmcode zu starten, oder? Vielleicht kann ja mal einer, der sich besser damit auskennt, hier eine kleine Gegenüberstellung posten. Wäre bestimmt für viele sehr hilfreich. Joline
> Die Aufgabe eines jeden Bootloaders sollte ja immer gleich sein: Zumindest ähnlich. > nämlich den eigentlichen Programmcode zu starten, oder? Nein. Immer noch nicht begriffen. Bei Mikrokontrollern versteht man unter "Bootloader" etwas anderes als bei PCs. Während bei PCs der Bootloader das Betriebssystem (oder eins von mehreren) startet, ist der Mikrokontroller-Bootloader für Firmware-Updates zuständig. Da gibt es natürlich mehrere mögliche Schnittstellen und Protokolle, mit denen man so etwas machen kann und deshalb gibt es verschiedene Implementierungen, ja nach Bedürfnissen der Anwendung. Warum zwei unterschiedliche Sachen gleich heißen? Weil sich beide an das "Bootstrap"-Prinzip halten: zum Vertäuen eines Schiffes am Kai wurde früher ein Seil rübergeworfen, an dem dann ein dickeres Seil festgeknotet wurde, das an dem dünnen Seil zurückgezogen wurde. An diesem Seil dann wieder ein dickes Tau, das man nicht direkt hätte rüberwerfen können. Das ganze heißt dann "Bootstrap" und beschreibt ganz gut, wie über einen kleinen Bootloader das ganze System hochgezogen wird.
Aber die Frage an sich ist schon berechtigt. Ein Bootloader ist eine Software so wie jede andere Anwendung auch. Die Funktionalität eines Bootloaders könnte auch in der Anwendung enthalten sein. ABER! es gibt da einige wesentliche Unterschiede: 1.) der Speicherbereich eines Bootloaders ist besonders geschützt und befindet sich meistens am Ende des Flashs 2.) wäre der Bootloader in der Anwendung integriert so würde ein Update-Fehler nicht nur die Anwendung selber zerstören sondern eben auch den Bootloader. Somit gibt es keinen inneren Unterschied zwischen Bootloader und jeder anderen normalen Anwendung. Nur die äußeren Rahmenbedingungen, wie Speicherort, Überschreibschutz, separate und unabhängige Lauffähigkeit des Bootloaders im vergleich zur Anwendung, machen den Unterschied aus. Es spricht ja auch nichts dagegen da wo normalerweise im Flash der Bootloader liegt eine spezielle Anwendung abzulegen. Softwaretechnisch besteht also kein Unterschied in einem Bootloader und einer beliebigen anderen Anwendung (mal abgesehen von ihrer Funktionalität). Nur physikalisch gibt es Unterschiede in der Art und Weise wo und wie diese Bootloader-Anwendung in der MCU abgelegt und geschützt wird. Gruß Hagen
Wo kann man Grundlagen über den Bootloader herholen, wie es Funktiert, Handling etc? Vielleicht mit Code. Bitte jetzt nicht schreiben www.atmel.de -> ich meine wirklich Grundlagen zum verstehen der Sache. thx
Warum nicht www.atmel.com? Wer einen Bootloader und damit das mit dem AVR mögliche SelfProgramming verstehen will, für den sollte die AVR109-Application-Note auf alle Fälle einen Blick wert sein, oder? Jörg
Ja - später - will ws erstmal so verstehen lernen - dann fällt mir AN109 auch nicht schwere- erst Muttersprache ,dann Englisch :-)
Ich muss aber noch einmal nachfragen: Wo liegen denn nun die Unterschiede bzw. Vor-und Nachteile der verschiedenen Bootloader?
Ich benutze von Anfang an den Megaload, kann also nur von dem was erzählen: + Windows-Software + automatische Baudratenerkennung + Freeware + Source der Firmware erhältlich + funktioniert mit USB-RS232-Adaptern + Firmware wurde auf WinAVR portiert (siehe hier im Forum) + Absicherung der Übertragung mit Checksummen Insgesamt ein sehr unkomplizierter und zuverlässiger Bootloader. Gruß Thorsten
Meiner: + läuft unter Windows-XP oder Linux + Batchbetrieb (ohne Useraktion) + automatische Baudratenerkennung + Freeware + komplette Source + funktioniert mit USB-RS232-Adaptern + Absicherung der Übertragung mit Checksummen + passiv bis zum Erkennen des Paßworts (nichts senden). Benötigt die Anwendung die UART, dann wird beim Megaload nach jedem Reset erstmal ein Haufen Müll gesendet. Peter
Wie weiss der Bootloader eigentlich durch welche Schnittsetelle das Update kommt ?
Wie schon oben geschrieben: Der "Bootloader" ist einfach ein Programm. Das kann man, wie jedes andere Programm auch, selbst schreiben. Ich benutze z.B. I²C als Übertragungsmedium, weil diese Schnittstelle von außen zugänglich ist. Je nach Aufwand (Verschlüsselung, verschiedene Schnittstellen / Protokolle) ist dieses Programm länger oder kürzer - ich habe auf einen möglichst kleinen Bootloader geachtet, damit so wenig Flash wie möglich von ihm benutzt wird. Falls man sowieso eine ISP-Schnittstelle an der Schaltung hat, kann man das Thema "Bootloader" getrost abhaken.
Hi, ein anderer wichtiger Aspekt: Der Kunde kann mittels isp den Chip kaputt fusen o. vielleicht das Programm falsch aufspielen. Der Chip waere dann auch nicht mehr gegen Kopien geschuetzt. Ein Bootloader ist ein nettes Feature. Ich bevorzuge den Bootloader als seriell Version. Der Kunde kann mittels PC (und simpler Software) die neusten Versionen aufspielen. Mfg Dirk
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.