www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik bootloader, ISP, Programmer, verständnisfragen


Autor: spice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe mich mit dem thema bootloader beschäftigt, aber ich habe 
noch ein paar verständnisfragen, die mir vielleicht jemand beantworten 
könnte.
Hab übrigens die artikel dazu auch durchgelesen.

ist ein bootloader ein MUSS für ein controller?
wenn ich über einen "MySmartUSB"-programmer mein mega8 flashe, was genau 
passiert da? Ist da der Bootloader auch schon in aktion?
benötige ich den ISP nur, wenn ich den Mega erst in der Zielschaltung 
flashen will oder hat das auch was mit dem bootloader zu tun?
Was kann man mit einem bootloader sinnvolles anstellen (mir fehlt ein 
wenig die vorstellungskraft). vielleicht kann mir jemand ein wenig 
helfen?
Danke im Voraus
und schönen abend

Spice

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ein Bootloader ist ein (Hilfs-)Programm für den µC.
Das Programm macht es möglich, den µC über eine andere am µC verfügbare 
Schnittstelle zu programmieren.

Erspart dann das Programmieren über ISP oder andere spezielle 
Programmiergeräte/-software.

Mit einem Bootloader der z.B. eine serielle Schnittstelle am UART 
unterstützt kann ich dann den µC einfach an einen beliebigen Rechner an 
die seriell Schnittstelle stecken und ein neues Programm per 
Terminalprogramm auf den µC programmieren.

Den Bootloader selbst muß man natürlich zuerst mit den üblichen Mitteln 
(ISP o.ä.) auf den µC brennen. Der bleibt dann z.B. bei den AVR durch 
passendes setzen der Fuse-Bits dort schreibgeschützt drauf.

Gruß aus Berlin
Michael

Autor: spice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für dein sehr aufschlussreiche Antwort...

Warum steht das so nicht in der Artikelbeschreibung...

Also wäre es möglich, wenn ich einem mega8 per ISP oder einem anderen 
programmer vorerst einen bootloader flashe, dann diesen mega auf einer 
zielplatine mit einem usb-seriell-wandler über den usb-anschluss eines 
xbelibigen PCs meine softwareanwendung flashe?! verstehe ich das 
richtig?
Also kurz zu meinem vorhaben, ich möchte einen mega8 per usb in einer 
windowsapplikation nutzen und auch daten austauschen. Da dachte ich mir, 
dass ich eventuell mit dem usb anschluss auskomme auch fürs 
programmieren, anstatt mir noch die isp-pins herrauszuführen?!
ist das möglich?
danke und gruss
Spice

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi spice,

ja, das ist so möglich. Es kommt dann halt drauf an, wie du es lösen 
magst. Z.B. als Befehl an die Applikation, den Bootloader zu starten 
(wenn schon ne Applikation drauf ist), oder den umgekehrten Weg, den 
Bootloader vor der Applikation zu starten, der BL wartet eine gewisse 
Zeit, wenn in dieser Zeit eine bestimmte Sequenz über die Schnittstelle 
reinkommt, weiss der BL dass ein neues Programm kommt. Die zweite 
Variante ist soweit ich weiss die üblichere. Ich experimentier grad auch 
ein bisschen damit, will allerdings noch eine zusätzliche Variante, bei 
die GPIOs des USB-Chips die ISP-Leitungen bedienen können. Hat bei 
SMD-Controllern den Vorteil, dass ich sie zum Programmieren nicht erst 
in eine andere Schaltung setzen muss, und ich muss auch keinen 
"riesigen" Stecker für ein externes Tool aufs Board bringen.

Ralf

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe auch eine Frage zum Thema Boot-Loader.

Ist es möglich im Rom mehrere kleine Programme abzulegen die je nach 
Situation gewählt werden?

Ich hatte mir dass so vorgestellt:
Man schreibt die Programmen in den Speicher und wählt das Programm, dass 
laufen soll über ein Mausklavier oder vergleichbares aus.
Ich habe nämlich dass Problem, dass ich eine zeitkritische Aufgabe habe, 
die sich je nach angeschlossener Pheripherie ändert.
Und ich will nicht umbedingt, nur weil ich etwas an der Peripherie 
umstecke, alles neu programmieren.

Ist dass so machbar?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast wrote:

> Und ich will nicht umbedingt, nur weil ich etwas an der Peripherie
> umstecke, alles neu programmieren.

Schreiben mußt Du die einzelnen Funktionen ja in jedem Fall.

Bloß eben nicht als getrennte Programme, sondern als Unterfunktion, die 
dann zu beginn des Main ausgewählt werden.

Das hat auch den Vorteil, daß gemeinsam benötigte Funktionen nicht 
mehrmals im Flash stehen müssen.


Peter

Autor: Baster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So etwas wie einen selektiven boot loader würde mich auch reizen, da ich 
auch schon dass eine oder andere mal 2 oder mehrere Programme auf einem 
uC haben wollte.

>Bloß eben nicht als getrennte Programme, sondern als Unterfunktion, die
>dann zu beginn des Main ausgewählt werden.
Diese Idee hatte ich auch schon.
Bei der Main funktioniert dass schön.
Aber mir ist noch keine vernünftige Lösung eingefallen wie ich dass dann 
mit den Interrupt's lösen soll.

Denn wenn alles in einem Topf (Programm) gemacht wird, benötigt man am 
Anfang jedes Interupt's eine Unterscheidung welches Programm jetzt 
läuft.
Außerdem muß ich dann bei jeder zusätzlichen Funktion immer wieder 
Überprüfen ob sich das Ganze mit den Takten noch ausgeht.
Außerdem finde ich dass wirklich reizvoll das Ganze schön abzutrennen 
und sicher zu sein dass man nicht aus Versehen in's andere Programm 
rüberkommt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.