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


von Harald (Gast)


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.

von Rahul (Gast)


Lesenswert?

Suche in der Codesammlung könnte helfen...

von Harald (Gast)


Lesenswert?

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

von Rahul (Gast)


Lesenswert?


von Rick Dangerus (Gast)


Lesenswert?


von Harald (Gast)


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.

von Harald (Gast)


Lesenswert?

Zusatz: Ich meinte den Link von Rahul.

von Rahul (Gast)


Lesenswert?

Das stand nicht in der Anforderungsliste...

von Harald (Gast)


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.

von Rick Dangerus (Gast)


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

von Werner B. (Gast)


Lesenswert?

Vielleicht kannst du dich da einklinken?

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

von TravelRec. (Gast)


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.

von arc (Gast)


Lesenswert?


von mthomas (Gast)


Lesenswert?

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

Martin Thomas

von Günter R. (galileo14)


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

von Harald (Gast)


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.

von TravelRec. (Gast)


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.

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.