Forum: Compiler & IDEs Atmel Studio 6 Linker für Bootloader


von Hauke (Gast)


Lesenswert?

Moin moin,

bin gerade dabei einen Bootloader für den ATMega644P nach dem Artikel 
"AVR Bootloader in C - eine einfache Anleitung"

http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung

zu basteln. Eigentlich ist alles fertig, ich muss noch den Linker auf 
die Adresse 0xF800 verschieben. Und da ist das Problem. In dem Artikel 
wird leider das AVR Studio 4 benutzt, wo der Linker Parameter auf 
-Ttext=0x1800 gesetzt wird.

Leider kennn ich mich nicht mit diesen Compielereinstellungen aus und im 
Atmel Studio 6 sieht alles anders aus. Kann mir einer beschreiben oder 
einen Screenshot schicken, wie ich das einstelle?

Hoffe ihr könnt mir helfen

LG Hauke

von Stefan E. (sternst)


Lesenswert?

Project -> Properties -> Toolchain -> Linker -> Memory Settings

Aber daran denken, dort wird die Wort-Adresse erwartet.

von Thomas E. (thomase)


Lesenswert?

Stefan Ernst schrieb:
> Project -> Properties -> Toolchain -> Linker -> Memory Settings
> Aber daran denken, dort wird die Wort-Adresse erwartet.
Nein. Da muss die Byteadresse rein.

mfg.

von Stefan E. (sternst)


Lesenswert?

Thomas Eckmann schrieb:
> Stefan Ernst schrieb:
>> Project -> Properties -> Toolchain -> Linker -> Memory Settings
>> Aber daran denken, dort wird die Wort-Adresse erwartet.
> Nein. Da muss die Byteadresse rein.

Nein, eben nicht. Das Studio erwartet Wort-Adressen, und erzeugt dann im 
generierten Makefile die Optionen mit den entsprechenden Byte-Adressen.

von Thomas E. (thomase)


Lesenswert?

Stefan Ernst schrieb:
> Nein, eben nicht. Das Studio erwartet Wort-Adressen,
Seit wann?
Wenn es sich dabei um eine Neuerung in Studio 6 handelt, ziehe ich 
meinen Kommentar zurück. In Studio 4 ist das nämlich nicht so.

mfg.

von Stefan E. (sternst)


Lesenswert?

Thomas Eckmann schrieb:
> In Studio 4 ist das nämlich nicht so.

Doch, ist es.
Unter "Memory Settings" sind für Einträge mit "Memory Type = Flash" 
Wort-Adressen einzutragen.

von Thomas E. (thomase)


Lesenswert?

Stefan Ernst schrieb:
> Thomas Eckmann schrieb:
>> In Studio 4 ist das nämlich nicht so.
>
> Doch, ist es.
> Unter "Memory Settings" sind für Einträge mit "Memory Type = Flash"
> Wort-Adressen einzutragen.

Dann haben wir wohl aneinander vorbei geredet(geschrieben).
Das -Ttext wird mit Byte-Adresse unter Linker-Options eingefügt. Geht 
das bei Studio 6 nicht?

mfg.

von Stefan E. (sternst)


Lesenswert?

Thomas Eckmann schrieb:
> Das -Ttext wird mit Byte-Adresse unter Linker-Options eingefügt. Geht
> das bei Studio 6 nicht?

Das geht natürlich auch.
Aber wenn die IDE (sowohl Studio 4, wie auch folgende) schon eine extra 
Konfigurationsmöglichkeit (Memory Settings) für genau den Zweck 
vorsieht, warum die dann nicht nutzen?

von Thomas E. (thomase)


Lesenswert?

Stefan Ernst schrieb:
> Aber wenn die IDE (sowohl Studio 4, wie auch folgende) schon eine extra
> Konfigurationsmöglichkeit (Memory Settings) für genau den Zweck
> vorsieht, warum die dann nicht nutzen?
Funktional Jacke wie Hose. Die Memory-Settings Methode ist allerdings 
eleganter. Aber da der Kollege in dem Bootloader-Artikel
http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung
das mit der Linker-Option macht und jeder, der sich an diesem Artikel 
orientiert, das auch so macht, ist bei jedem zweiten, der schon damit 
nicht so richtig klarkommt, die Verwirrung noch größer.

mfg.

von Hauke (Gast)


Angehängte Dateien:

Lesenswert?

Erstmal danke für die Antworten!


Stefan Ernst schrieb:
> Project -> Properties -> Toolchain -> Linker -> Memory Settings

ja diese Einstellung hab ich auch gefunden, allerdings weis ich nicht, 
wie und wo ich jetzt was reinschreiben soll.
Wenn ich das wie in dem Screenshot probiere und nachher in der .lss 
Datei den Assembler-Code angucke, hat er die Adresse nicht geändert.

von Stefan E. (sternst)


Lesenswert?

Hauke schrieb:
> allerdings weis ich nicht,
> wie und wo

Das passt schon, aber ...

Hauke schrieb:
> was reinschreiben soll

.text=0xXXXX

Und wie gesagt, XXXX muss die Wort-Adresse sein.

von Hauke (Gast)


Lesenswert?

Ah jetzt hat es funktioniert. Vielen dank für die Hilfe!

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.