Forum: Mikrocontroller und Digitale Elektronik [AVR Mega2560] Verdoppelte Adressen in .map und .lss?


von Dosmo (Gast)


Lesenswert?

Hallo zusammen,

ich hab folgendes Phänomen mit AvrStudio6.1 und einem Mega2560:
Ich will einen Bootloader an die Adresse 0x1F800 legen.
Also geb ich dem Linker die FlashSection .text=0x01F800

Allerdings zeigen mir .map und .lss verdoppelte Adressen an:
1
                  CONTENTS, ALLOC, LOAD, DATA
2
  1 .text         00000760  0003f000  0003f000  00000094  2**1
3
4
Disassembly of section .text:
5
6
0003f000 <__vectors>:
7
   3f000:  71 c0         rjmp  .+226      ; 0x3f0e4 <__ctors_end>
8
   3f002:  00 00         nop

Wenn ich nun das Hexfile flashe und wieder zurücklese, dann finde ich 
zwei Segmente vor (was ja Sinn macht, da der 2560 ja 2 * 64kWorte Flash 
hat).
Im Hexfile ist für das 2. Segment die "Extended Segment Address" mit 
0x2000 angegeben:
1
:020000022000DC
Wieso 0x2000? Ich hätte eher 0x0001 vermutet?

Hab nirgends einen Hinweis gefunden, was das zu bedeuten hat.
Weiß jemand näheres?

von Dosmo (Gast)


Lesenswert?

Ups, Korrektur:

Im Hex sind 4 Segment und der Bootloader liegt an Segment Adresse 0x3000
1
:020000023000CC

von Stefan E. (sternst)


Lesenswert?

Dosmo schrieb:
> Ich will einen Bootloader an die Adresse 0x1F800 legen.
> Also geb ich dem Linker die FlashSection .text=0x01F800
>
> Allerdings zeigen mir .map und .lss verdoppelte Adressen an:

Passt doch. Du trägst im Studio die Word-Adresse ein, und die GNU-Tools 
zeigen alles grundsätzlich Byte-orientiert an.

von Dosmo (Gast)


Lesenswert?

Stefan Ernst schrieb:
> Passt doch. Du trägst im Studio die Word-Adresse ein, und die GNU-Tools
> zeigen alles grundsätzlich Byte-orientiert an.

Word-Adresse? Das macht Sinn. Wußte ich nicht, 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.