mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bootloader -> programmierbar per Terminal


Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich suche einen Bootloader für einen AVR (möglichst mit Sourcen), bei
dem ich später per Terminalsoftware (wie Minicom oder Hyperterminal)
das eigentliche Programm übertragen kann.

Hat da jemand eine Idee?

P.S. Bei Google habe ich was von SAIL gefunden, aber weder bin-File
noch Sourcen.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suche in der Codesammlung könnte helfen...

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, vielleicht habe ich ja Tomaten auf den Augen, aber ich finde da
nichts Passendes.  :-(

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den habe ich auch gefunden. Aber da gibt es ja ein extra
Kommandozeilentool, um den AVR zu programmieren. Ich habe keinen
Hinweis gefunden, dass man statt dessen auch ein Terminalprogramm
nehmen kann und dann einfach eine Hex-Datei über die serielle
Schnittstelle sendet.

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zusatz: Ich meinte den Link von Rahul.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das stand nicht in der Anforderungsliste...

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rick Dangerus
Danke für den Link. Aber auch hier braucht man ein spezielles Tool. Ich
suche aber einen Bootloader, dem ich per Terminalprogramm einfach eine
Hex-Datei senden kann.

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Harald
Dann bleibt nur selberschreiben...
Ich würde dann aber xmodem o.ä. verwenden. Wie es prinzipiell gemacht
wird, kann man sich ja bei AVRPROG angucken.

Rick

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht kannst du dich da einklinken?

http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=20042

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Bootloader ist ´ne relativ harte Nuß, weil man die Sachen mit dem
SPM erst verstehen muß. Wenn man´s dann gefressen hat - geht´s
eigentlich. Ich habe so ein Ding geschrieben, was direkt ein .hex-file
verarbeitet. Aus Copyright-Gründen kann ich das hier leider nicht
veröffentlichen, aber das Prinzip ist im Datenblatt der
ATMega-Controller unter "Self-Programming the Flash" nachzulesen.
Dann muß man lediglich noch das U(S)ART einbinden und dann kann man die
Dateien mit jeder x-beliebigen-Terminal-Software übertragen. Das
Schwierigste war meiner Meinung nach das Entknoten der .hex-files und
die Fehler-Erkennung. Ein paar Tage Arbeit wird´s schon kosten.

Autor: arc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei avrfreaks in academy/user-projects gibt es wenn recht erinnert einen
"XMODEM-Bootloader".

Martin Thomas

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Harald:

Ein normales Terminalprogramm hat das Problem, daß es die Hex-Daten
einfach so, ohne Rückmeldung vom Controller, raussendet. Wenn der uC
aber eine gewisse Zeit zum Verarbeiten braucht, z.B. beim Löschen eines
Bereichs, oder evt. auch beim normalen Programmieren einer Page (z.B.
256 Bytes beim ATMega128), je nach Baudrate, bekommt das
Terminalprogramm das nicht mit. Außerdem könnte unterwegs ein Fehler
entstehen, z.B. ein Übertragungsfehler (Checksum), das bekäme das
Terminalprogramm auch nicht mit, und es würde fleißig Daten
weitersenden.

Ich denke, man müßte ein spezielles Terminalprogramm haben, das die
Intel-Hex-Records satzweise sendet und nach jedem Satz auf ein
Rückmeldezeichen vom Controller wartet; erst dann kommt der nächste
Satz. Soetwas könnte man z.B.in Delphi schreiben..

Günter

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Günter

Damit hast Du natürlich Recht. Das Programmieren mit einem normalen
Terminalprogramm birgt sicher gewisse Risiken. Andererseits hat man
eben so ein Terminalprogramm (fast) immer verfügbar.

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Proggen mit Terminalprogramm geht bis 38kBaud sicher, wenn man den Flash
vorher löscht und beim Proggen nur schreibt und den Pagebuffer als
schnellen Zwischenspeicher nutzt, wozu er ja auch gedacht ist. Das habe
ich zuverlässig getestet (ATMega16 bei 8MHz), sicher geht´s auch noch
schneller. Wenn der Bootloader autonom arbeitet, kann man bei
fehlerhafter Übertragung einfach nochmal nachflashen (vorher natürlich
wieder die Applikations-Sektion löschen). Ich habe bei meinem
Bootloader eine feste Sequenz die ich sende, um das Flash zu löschen,
und eine, um in die Applikation zu springen, die .hex wird aufgrund
ihrer Struktur automatisch erkannt. Der Bootloader überprüft die
Prüfsummen aus der .hex und gibt eine Fehlermeldung, wenn ´was
schiefgegangen ist.

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.