Forum: Compiler & IDEs Atmel Studio 6 + ISR + Bootloader


von BL (Gast)


Lesenswert?

Guten Tag,

ich benutze Atmel Studio 6 + JTAGICE3 Debugger und programmiere via 
ISP-Schnittstelle den ATmega32.

Mein Ziel ist, auf den µC einen Bootloader aufzuspielen und den dort 
auch
zu belassen. Sprich, wenn ich über ISP-Schnittstelle programmiere soll
die Bootloader-Sektion nicht gelöscht werden. Ist sowas möglich?

Ich habe bereits unter "Device Programming > Lock bits" LB und BLB1 auf 
den
Wert "LPM_SPM_DISABLE"  gesetzt, aber der Bootloader wird dann trotzdem
gelöscht....  Ich vermute, weil zuvor immer ein "Erase device" 
durchgeführt wird.

Weiß jemand Rat? :)

von Eduard S. (schneehase)


Lesenswert?

Schon mal versucht "Erase device before programming" zu deaktivieren?

Am besten gehst du so vor:
1. Bootloader flashen + "Erase device .."
2. Application flashen ohne "Erase device .."
   Bootloader und App können jetzt beide benutzt werden
3. Nur noch den bootloader benutzen

Soweit ich weiß kann man über ISP keine einzelnen Pages löschen.
Also immer nur das ganze device. Danach können beliebige Pages 
beschrieben werden.
Ein Bootloader kann einzelne Pages löschen und neu beschreiben.

von BL (Gast)


Lesenswert?

Es gibt also keine Möglichkeit über ISP zu programmieren, ohne dabei den 
Bootloader zu löschen?

von Eduard S. (schneehase)


Lesenswert?

An sich Nein. Wie schon gesagt, kann das flash nur als ganzes gelöscht 
werden. Danach können einzelne Teile vom flash beschreiben werden. Es 
ist demnach nicht möglich den Bootloader zu behalten und die App zu 
löschen.

Es gibt einen Workaround. Und zwar kann man Bootloader und App in eine 
hex oder bin Datei packen und zusammen programmieren. Dazu gibt es 
verschiedene Lösungen. Oder guck mal 
AVR Bootloader in C - eine einfache Anleitung

von BL (Gast)


Lesenswert?

Eduard Scheske schrieb:
> Es gibt einen Workaround. Und zwar kann man Bootloader und App in eine
> hex oder bin Datei packen und zusammen programmieren. Dazu gibt es
> verschiedene Lösungen. Oder guck mal
> AVR Bootloader in C - eine einfache Anleitung

Vielen Dank.

Ich habe hier mal nachgelesen, aber die Lösung ist nicht 
zufriedenstellend.
http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung

Zuerst wird normale *.hex erstellt, auf den µC geschrieben und dann erst 
wird
die bootloader.hex zur Datei hinzugefügt.

Gibt es eine einfache Möglichkeit, zuerst die Vereinigung der 
Anwendungsdatei und Bootloaderdatei zu veranlassen und erst dann auf den 
µC zu schreiben? Danke!

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.