Hallo Gemeinde Was ist eigentlich der Unterschied zwischen einem Bootlader und ISR? Erklärung: Ich habe bisher meinen AT 128 immer über ISR programmiert. Es ist ein 6 pol Anschluss dazu vorhanden. Bei einigen Boards z.B. RN steht dahinter, über Bootloader oder ISR programmierbar oder vorhanden. Was ist den nun möglich oder besser? Wie wird es über Bootloader gemacht? achim
Naja. ISP bedeute den Programmer einstecken. Bedeutet in der Regel das Board ist zugreiffbar, offen. Bedeutet es muss ein Fachman da sein, das Tool bedienen, usw. Waehrend ein Bootloader bedeutet, Programmieren durch eine Schnittstelle. zB seriell, zb Bluetooth, zB SD Karte. Bedeutet, das Board kann eingebaut sein, eingebaut bleiben, Bedeutet irgendjemad mit marginalen Instruktionen kann das tun, allenfalls sogar remote.
Ein Bootloader ist nichts anderes als ein Programm, welches schon im µC sitzt und mit dem ein Frontend (meist auf einem PC) per handelsüblicher Schnittstelle (zb serielle Schnittstelle) Kontakt aufnimmt, um dort das neue Programm einzuspielen. Der Teil im µC nimmt die Programmdaten entgegen, prüft so zb mittels Checksumme und brennt dann mit diesen Daten das neue Programm in den µC. Vorteil: du brauchst keine ISP Hardware. Man kann im Bootloader Prüfungen einbauen. Je nach µC kann man das ganze dann auch so gestalten, dass man über einen Bootloader keinen Unfug anstellen kann (zb sind einige Fusebits bei den AVR nicht per Programm änderbar - auf einem Mega16 kann man sich nicht mittels falscher Fuse Bits aus dem µC aussperren) Nachteil: der Bootloader braucht selber ein bischen Platz im Speicher.
Die eingebaueten Bootloader sind spezifisch zu einem Tool. Da muss man allenfalls selbst ran, wenn man was Spezielles will. Und um die Vorteile des Bootloaders auszunutzen muss man laengerfristig was Spezielles haben. Ich hab, zB mal einen internetfaehigen Bootloader geschrieben.
Zum ISR brauche ich Hardware, z.B. Prommer AVR ik2 von Atmel, hab ich. Ist das universeller, z.B. für verschiedene Prz? Wenn ich richtig gelesen habe, wird der Bootlaoder damit überschrieben. Wie komme ich mit dem Bootloader und Programm auf den Atmel? Sorry, noch nie gemacht achim
@ Achim Seeger (achims) >Was ist eigentlich der Unterschied zwischen einem Bootlader und ISR? Bootloader: Kleines Programm zur Programmierung eines Mikrocontrollers, meist über RS232 oder ähnlich. ISR: Interrupt Service Routine. Ergo Beide Sachen haben praktisch nichts miteinander zu tun. >Ich habe bisher meinen AT 128 immer über ISR programmiert. Nö. Bestenfalls ISP. Immer dieser AbKüFi!
Der Bootlader muß einmal per ISP (nicht ISR, das ist eine Interruptroutine) auf den Prozessor programmiert werden und dann übernimmt er die Kommunikation mit dem PC und das "Brennen" des Prozessors. Ab diesem Zeitpunkt läuft alles über die Verbindung PC->Bootlader. Den ISP-Anschluß mit Programmiergerät brauchst du nur dann wieder, wenn du einen anderen Bootlader aufspielen willst.
Der ISP ist moeglicherweise zum Entwickeln schneller. Der Bootloader muss zur Entwicklungsumgebung passen, waehrend der ISP sowieso passt. Falls der Bootloader nicht passt, muss man nach dem Kompilieren, das andere Programm aufrufen .. ist ein paar clicks mehr. Soweit ich weiss ist ein Bootloader von Atmel downloadbar. Und sonst von anderswo.
Das was du meinst, heißt ISP und nicht ISR... nur so am Rande. Wenn du bei deinem Projekt gut an die ISP Schnittstelle herankommst, spricht nichts dagegen, das weiterhin so zu machen. Ein Bootloader ermöglicht dir beispielsweise die FW auch über andere Schnittstellen zu updaten. Z.B. serielle Schnittstelle, über CAN oder vom USB-Stick etc. Der einfachste und verbreiteste Fall ist vermutlich ein Bootloader der die Daten per serieller Schnittstelle entgegen nimmt. Z.B. wenn dein Board (mit CAN Schnittstelle) in den Tiefen eines Roboters verbaut ist, du aber irgendwo bequemen Zugang zum CAN Bus hast, dann bietet sich ein Bootloader mit CAN Unterstützung an. Der Bootloader ist wie schon gesagt selber ein Programm und muss ggf. an deine Bedürfnisse angepasst werden. Sprich es ist damit auch zusätzlicher Aufwand verbunden.
ISP ist ok. Beim AbKüFi waren die Finger schneller als der Geist folgen konnte. Danke für den Hinweis. Da bleibe ich doch lieber beim ISP, da ich alles habe. Danke für die Hilfe achim
Der aus meiner Sicht der größte Nachteil des Bootloaders ist, dass er, insbesondere bei kleinen (speichermäßig) Prozessoren, zuviel Speicher blockiert. Ein interessanter Aspekt des Bootloaders ist, praktisch jeder Kunde hat ein USB-Kabel und könnte, ein Update pflegeleicht verpackt, die neue Version einspielen. Einen ISP-Programmer hat meist nur der Programmierer.
Die kleinen Prozessoren lohenn sich eh nur bei extrem hohen Stueckzahlen. Meine aktuellen Preise ATMEGA8-16AU : 1.00Eur ATMEGA16-16AU : 1.80Eur ATMEGA32-16AU : 2.50Eur ATMEGA644P-20AU : 4.30Eur Also auch bei 1000 Stueck ist die Einsparung begrenzt, solange man einen Nutzen hat. Und 1000 mal ein Gehaeuse aufschrauben ist doch eine Einsparung.
Achim Seeger schrieb: > Was ist eigentlich der Unterschied zwischen einem Bootlader und ISP? Wenn man mal über den Tellerand hinausblickt, dann sind sie im Prinzip sehr ähnlich. ISP bedeutet ja erstmal nur "In System Programming" - heißt der µC ist in der Anwendungsschaltung programmierbar. Wer das für nix Besonderes hält: du bist zu jung. Es gab eine Zeit, da mußte man µC zum Programmieren in den Sockel eines Programmiergeräts stecken. Der erste µC auf dem ich das anders kennen lernte war der 68HC11 von Motorola. Wenn man da beim Reset zwei Pins passend beschaltet hatte, aktivierte der µC seine serielle Schnittstelle und man konnte 256 Byte in das RAM laden die dann ausgeführt wurden. Das war so Anfang der 90er ... Der 68HC11 hatte den Bootloader im internen ROM, das nur in dieser Betriebsart eingeblendet wurde. Viele andere µC machen das so ähnlich. Die serielle ISP-Schnittstelle der AVRs ist im Prinzip auch nix anderes. Ein paar dezidierte Pins des µC und eine besondere Startbedingung lassen den µC in einen Programmiermodus wechseln. Atmel schweigt sich über die Details aus, aber ich gehe davon aus daß der ISP zumindest teilweise die CPU verwendet und dazu ein spezielles ROM einblendet. Auch JTAG haut in die gleiche Kerbe, auch wenn das eher in Hardware realisiert ist. Gemeinsame Merkmale dieser Methoden: - vom Hersteller vorgegebene Pins und Signalisierung, oft (aber nicht immer) ist die Schnittstelle proprietär - sie sind weitgehend "unkaputtbar", z.B. kann man das Bootloader-ROM des 68HC11 nicht löschen oder kaputt konfigurieren Was man spezifisch bei den AVR als Bootloader bezeichnet, ist aber etwas anderes. Aus Sicht des AVR ist der Bootloader ein stinknormales Programm im Flash, das nach dem Reset losläuft. Dieses Bootloader-Programm prüft nun eine Hardware-Bedingung wie z.B. daß zwei Pins verbunden sind und geht dann entweder in den Programmiermodus oder startet das Anwenderprogramm das zusätzlich zum Bootloader im Flash liegt. Der Vorteil eines solchen Bootloaders ist, daß er eine beliebige Schnittstelle zum Download des Anwenderprogramms benutzen kann. Angefangen vom UART über USB hin zu CAN. Oder sogar etwas so exotisches wie das "Wackeln" an der Betriebsspannung ist denkbar. Vorzugsweise benutzt man aber eine Schnittstelle, die in der normalen Anwendung sowieso gebraucht wird. So ein Bootloader hat aber auch Nachteile: - er belegt Platz im Flash - er kann keine Fuses ändern - er kann kaputt gehen. z.B. ist er nach einen Chip Erase weg und speziell bei den AVRs muß man leider auch sagen: es gibt viel zu viele verschiedene Bootloader, die meistens spärlich bis gar nicht dokumentiert sind und oft (aber nicht immer) wiederum proprietäre Programme auf der PC-Seite verlangen. HTH, XL
>es gibt viel zu viele verschiedene Bootloader, die meistens spärlich bis gar
nicht dokumentiert sind und oft (aber nicht immer) wiederum proprietäre
Programme auf der PC-Seite verlangen.
Nun. Es steht zumindest jedem frei sich selbst einen Bootloader zu
schreiben. Den universalen Alleskiller. Ich kann mir dazu vorstellen :
-Lesen ab eingesteckter SD Karte
-Lesen ab eingestecktem USB Stick
-Lesen ab einer Webseite
was man rueberschieben muss kann zB ein Hex & EPP File sein. Plus
allenfalls eine Verschluesselung, plus allenfalls eine Authentifizierung
des Mediums
flädu schrieb: >>es gibt viel zu viele verschiedene Bootloader, die meistens spärlich bis >>gar nicht dokumentiert sind und oft (aber nicht immer) wiederum >> proprietäre Programme auf der PC-Seite verlangen. > > Nun. Es steht zumindest jedem frei sich selbst einen Bootloader zu > schreiben. Das ist Teil des Problems und auch von andersher [1] wohlbekannt: "Alle Lösungsansätze für Problemm FOO haben die eine oder andere Einschränkung. Außerdem gibt es viel zu viele davon und sie sind inkompatibel. Laßt uns also die perfekte Lösung bauen." Und schwupps gibt es statt N "Lösungen" jetzt N+1. Und im nächsten Jahr kommt der nächste Depp zur gleichen Schlußfolgerung wie oben und es werden N+2. usw. usf. XL [1] das Beispiel wo ich das hautnah erlebt habe waren X-Window Toolkits und darauf basierende Programmsuiten/Desktopumgebungen für Linux. Konkret ist KDE genauso entstanden. Wobei Qt wirklich sexy ist (oder zumindest damals war)
Also waere ein Bootloader Generator langsam drin. Klicki-Bunti, mit allen Optionen zum Ankreuzen.
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.