Forum: Mikrocontroller und Digitale Elektronik Bootloader mit Ponyprog flashen ...


von Gerhard (Gast)


Lesenswert?

Hallo

Ich hab mich endlich auch mal an das Thema Bootloader rangewagt. Ich 
meine auch das Pribzip verstanden zu haben. Allerdings ist mir eins noch 
unklar:
Der Bootloaderbereich befindet sich am oberen Ende des Flashs. Wenn ich 
ganz normal mit Ponyprog flashe wird das Programm ja ab Adresse 0x0000 
im Kontroller abgelegt. Eigentlich dachte ich es reicht vor den Flashen 
die BOOTRST fuse umzulegen. Laut Datenblatt ist das aber nur für den 
Resetvektor zuständig. Wie muß ich also vorgehen ??

Ach ja ...
Ich arbeite mit WinAVR unter AVR Studio 4.12 Built 498

Danke im Vorraus ...
Gerhard

von Karl H. (kbuchegg)


Lesenswert?

Welchen Bootloader benutzt du?
Ich nehme den aus der Codesammlung von PeDa für einen Mega16

Zunächst mal musst du wissen, wie gross der Bootlaoder
ist. Es gibt da ja mehrere Einsprungspunkte die per Fuse
eingestellt werden.

> Wenn ich ganz normal mit Ponyprog flashe wird das Programm ja
> ab Adresse 0x0000 im Kontroller abgelegt.

Da macht aber nichts. Das Hex-File von zumindest dem PeDa
Bootloader ist schon so hergerichtet, dass man es einfach
in den Controller flasht und alles kommt an die richtige
Stelle.

Ich machs so:
Bootloader flashen. Dann die Fuse-Bits umstellen
(Länge und damit auch den Einsprungspunkt)
fertig. Ab an die Serielle damit und schauen obs funktioniert.

Wenn du dich mit dem Einsprungspunkt verhaust und nichts
geht mehr: kein Problem. Kommt der Prozessor halt wieder
ans Pony und nachschauen wo das Problem liegt. Aussperren
kannst du dich auf die Art nicht.

von Gerhard (Gast)


Lesenswert?

>Welchen Bootloader benutzt du?
>Ich nehme den aus der Codesammlung von PeDa für einen Mega16

Ich mach einen eigenen ... schleißlich will ich auch was dazu lernen :-)

>Zunächst mal musst du wissen, wie gross der Bootlaoder
>ist. Es gibt da ja mehrere Einsprungspunkte die per Fuse
>eingestellt werden.

Du meinst sicher die Größe des Bootbereichs (BOOTSZ0 und BOOTSZ1)? Ja, 
die Fuses habe ich im Moment auf größt möglichen Booloader eingestellt.

Vielleicht sollte ich noch dazu schreiben, dass ich mit einem ATMega8535 
arbeite.

>fertig. Ab an die Serielle damit und schauen obs funktioniert.

Nix seriell ... das soll per USB laufen.

Habe ich das jetzt richtig verstanden? Ich muß dem Linker die 
Zieladresse für den Bootbereich mitteilen? Wenn ja, wie mach ich das in 
der Entwicklungsumgebung in AVR4 und GCC? In den Einstellungen hab ich 
nix gefunden woi man die Linkadresse angeben könnte ???



von Karl H. (kbuchegg)


Lesenswert?

> Wenn ja, wie mach ich das in
> der Entwicklungsumgebung in AVR4 und GCC?

Ich denke nicht, dass dir da AVR4 weiterhelfen wird.
Das ist schon ein sehr spezielles Thema. -> Externes
Makefile.

Aber: Warum holst du dir nicht aus der Codesammlung
den PeDa Bootloader und studierst dort mal das Makefile.
Da steht alles drin, was du wissen und einstellen
mußt.

von Gerhard (Gast)


Lesenswert?

Sorry, das Projekt von Peter Danneger hilft mir nicht wirklich weiter 
...

Irgendwie muß man dem AVR Studio doch sagen können an welche Adresse 
gelinkt werden soll ???

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.