Forum: Mikrocontroller und Digitale Elektronik Bootloader auf Atmega32 aufspielen


von Oliver G. (suchoi31)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe vor einen Bootloader auf einen Atmega32-16PU 
aufzuspielen.Dieser selbst ist noch komplett blank.
Kann ich dies mit einem AVR Dragon machen? Was benötige ich noch dazu?
Kann ich AVR Studio 4 verwenden, oder eignet sich da eher ein anderes 
Tool, bzw Programm.

Die Bootloader Datei liegt im hex Format vor und ist angehangen.
Ich hoffe ihr könnt mir weiterhelfen.

MFG Oli

von Karl H. (kbuchegg)


Lesenswert?

Oliver Go schrieb:

> Kann ich dies mit einem AVR Dragon machen?

Sciherlich

> Was benötige ich noch dazu?
Nichts. Ein Bootloader ist auch nur ein Programm, welches in den Flash 
gebrannt wird.

> Kann ich AVR Studio 4 verwenden, oder eignet sich da eher ein anderes
> Tool, bzw Programm.

Jedes Brennprogramm geht.
Im Hex-File ist schon beschrieben, an welche Stelle im Flash der Code 
platziert werden soll.

Diese Stelle musst du übrigens wissen. Denn je nachdem musst du in den 
Fuses einstellen, wo der Bootloader anfängt, damit der µC beim 
Hochfahren auch an der richtigen Stelle anfängt.

von Oliver G. (suchoi31)


Lesenswert?

Ah verstehe,
ich möchte einmal die Vorgschichte erzählen:

Unser ehemaliger Lehrer hat den Bootloader immer für uns geflasht. Wir 
haben dann im Unterricht immer nur das eigentliche Programm geflasht mit 
AVR Studio 4. Den Programmieradapter haben wir im Unterricht selbst 
gelötet. Nun kann unserer Lehrer leider nicht mehr für uns den 
Bootloader flashen, habe den Bootloader aber als Datei bekommen. Ich 
denke er hat den Bootloader immer ganz hinten im Speicher geflasht(geht 
das überhaupt), weil wenn ich ein Programm geflasht habe was mehr als 
95% des Gesamtspeichers belegt hat, habe ich den Bootloader 
überschrieben und wir mussten den Bootloader erneuern.

Hast du eine Idee wie man das bewerkstelligt, dass man dahingehend den 
Bootloader flasht, sodass ich quasi nur einmal am Anfang den Bootloader 
flashen muss und sonst nicht mehr?

MFG Oli

von Karl H. (kbuchegg)


Lesenswert?

Oliver Go schrieb:


> Ich
> denke er hat den Bootloader immer ganz hinten im Speicher geflasht(geht
> das überhaupt),

Das kannst du dir sowieso nicht aussuchen.
Es gibt 3 oder 4 mögliche Einsprungpunkte für einen Bootloader. Und 
dorthin muss der platziert werden. Dieser Einsprungpunkt wurde bereits 
per der Erstellung des Bootloaders angegeben und muss den Mega mittels 
Fuses eingestellt werden

> weil wenn ich ein Programm geflasht habe was mehr als
> 95% des Gesamtspeichers belegt hat, habe ich den Bootloader
> überschrieben und wir mussten den Bootloader erneuern.

Hä?
Wenn du einen Bootloader im System hast, warum flasht du dann noch mit 
einem Brennprogramm. Das ist doch absurd. Der ganze Sinn und Zweck eines 
Bootloaders besteht darin, dass man keinen Brenner mehr braucht.

Ein Bootloader, der sich selbst überschreibt ist mehr als erbärmlich 
programmiert. Zudem gibt es auch noch Fuses, mit denen sich der 
Speicherbereich des Bootloaders gegen überschreiben schützen lässt. 
Selbst wenn man wollte, ein Überschreiben des Bootloaders ist ohne 
Rücksetzen dieser Fuses nicht mehr möglich.

von Peter R. (pnu)


Lesenswert?

Da Dir die Details des bootloaders (BL) unbekannt sind, wie: auf welchem 
Speicherbereich ist der BL platziert, ist der vor Überschreiben 
geschützt, welches ist die Bedingung unter der der BL aktiv wird, 
benutzte Übertragung (USB,RS, Einzelpin) usw.

Es müsste eigentlich auch ein andrer bootloader imstande sein, das 
.hex-file auf den Kontroller zu bringen, oder ein ISP-Programmer kann 
das .hex-file auf den Kontroller übertragen.

So hab ich auch selbst einmal auf einem obskuren China-board ausgeführt: 
Zuerst das .hex-file per USB aufgespielt, mit dem Hilfsprogramm 
HID-loader auf dem PC. Als dann USB irgendwie zerschossen war, einfach 
das .hex file per ISP-Schnittstelle, direkt aus AVR-Studio heraus.

Also: auf dem Weg über die ISP-Schnittstelle oder JTAG braucht man 
keinen bootloader.

Suche einen bootloader, den Du auf das IC aufspielen kannst.
Dazu musst Du aber noch wissen:
-über welchen Signalweg wird das .hex-file aufgespielt? per USB, per 
RS232, per Einzelpin ?
-was ist die Aufspielbedingung? (wird etwa dann der BL gesartet, wenn 
drei sec nach reset noch kein .hex-file aufgespielt wird? Wird der BL 
dann gestartet, wenn beim Reset gleichzeitig ein pin auf 0 gestezt ist 
usw.)
-welche fuses müssen gesetzt sein
-mit welcher taktfrequenz arbeitet der boot loader.

Ich selbst würde Dir den Übergang auf ISP-Programmer empfehlen. Da 
kannst Du dann nicht nur .hex files "direkt" aufspielen, mit wählbarem 
Übertragungstakt sondern auch fuses lesen und ändern, bist also breiter 
in den Möglichkeiten.

Bootloader ist auch ganz fein, nur meist beengt bezüglich Taktfrequenz 
und bezüglich der fuses. Vorteil: bei manchen Versionen kommt man mit 
einem einzigen pin beim loaden aus. oder es ist sogar eine 
Verschlüsselung möglich: ein verschlüsseltes file wird vom BL beim Laden 
entschlüsselt.

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.