Forum: Mikrocontroller und Digitale Elektronik Warum Bootloader?


von dirk (Gast)


Lesenswert?

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

von Dirk (Gast)


Lesenswert?

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

von Hauke Radtki (Gast)


Lesenswert?

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.

von dirk (Gast)


Lesenswert?

@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.

von Matthias (Gast)


Lesenswert?

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

von dirk (Gast)


Lesenswert?

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?

von crazy horse (Gast)


Lesenswert?

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.

von Hagen (Gast)


Lesenswert?

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

von Joline (Gast)


Lesenswert?

@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

von Philipp Sªsse (Gast)


Lesenswert?

> 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.

von Hagen (Gast)


Lesenswert?

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

von dirk (Gast)


Lesenswert?

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

von plitzi (Gast)


Lesenswert?

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

von dirk (Gast)


Lesenswert?

Ja - später - will ws erstmal so verstehen lernen - dann fällt mir AN109

auch nicht schwere- erst Muttersprache ,dann Englisch :-)

von Joline (Gast)


Lesenswert?

Ich muss aber noch einmal nachfragen:

Wo liegen denn nun die Unterschiede bzw. Vor-und Nachteile der
verschiedenen Bootloader?

von Thorsten (Gast)


Lesenswert?

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

von Peter Dannegger (Gast)


Lesenswert?

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

von dirk (Gast)


Lesenswert?

Wie weiss der Bootloader eigentlich durch welche Schnittsetelle das
Update kommt ?

von Dirk (Gast)


Lesenswert?

Hi,

die Interface Routinen muss mit im Bootloaderbereich liegen.

Dirk

von thkais (Gast)


Lesenswert?

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.

von Dirk (Gast)


Lesenswert?

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

von herbert (Gast)


Lesenswert?

bootloader sind geil....

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
Noch kein Account? Hier anmelden.