Falsche Speicheraufteilung in .map-File ?

Gast #2490150
Lesenswert?

Hallo,

Wie sind die Werte in der Origin Spalte zu verstehen. Nach meinem 
Verständnis sind das Anfangsadressen des jeweiligen Speicherbereichs.

Memory Configuration

Name             Origin             Length             Attributes
text             0x00000000         0x00100000         xr
data             0x00802000         0x0000ffa0         rw !x
eeprom           0x00810000         0x00010000         rw !x
fuse             0x00820000         0x00000400         rw !x
lock             0x00830000         0x00000400         rw !x
signature        0x00840000         0x00000400         rw !x
default        0x00000000         0xffffffff


Ich verwende einen AT xmega128 mit "nur" 8K RAM ohne ext RAM. Daher 
wundere ich mich über die großen Adresswerte.
Daher meine Fragen:

Ist das ein Einstellungsfehler?
Falls nicht: Warum sind die Adressen so groß?

Gruß Martin
#2490201
Lesenswert?

Martin schrieb:
> Ist das ein Einstellungsfehler?

Nein.

> Falls nicht: Warum sind die Adressen so groß?

Weil der AVR mehrere separaten Adressbereichen hat, die der Linker so 
nicht handhaben kann. Deshalb muß man die alle für den Linker in einenen 
Adressraum zusammenfassen. Man rechnet also einfach immer Offsets drauf, 
die auf jeden Fall groß genug sind, damit sich die Adressräume nicht in 
die Quere kommen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren