RAM Nutzung, unterschiedliche Größenangaben

OP #6424279
Lesenswert?

Hallo zusammen,

ich versuche grad nachzuvollziehen auf welche Angabe ich mich verlassen 
kann.

SAM4E16E
RAM-Bereich: 0x20000000 - 0x20020000 (131072 bytes)
Stack ist auf 0x2000 (8192 bytes) definiert.

1)
AtmelStudio liefert mir folgende Ausgabe:
(arm-none-eabi-size.exe "Main_Module.elf")
Data Memory Usage:   85712 bytes   65,4 % Full

2)
Im map-File steht:
1
// 0x20000000 - 0x20013c90
2
// mein genutzter RAM
3
.stack          0x20013c90     0x2000 load address 0x004597d0
4
                0x20013c90                . = ALIGN (0x8)
5
                0x20013c90                _sstack = .
6
                0x20015c90                . = (. + __stack_size__)
7
 *fill*         0x20013c90     0x2000 
8
                0x20015c90                . = ALIGN (0x8)
9
                0x20015c90                _estack = .
10
                0x20015c90                . = ALIGN (0x4)
11
                0x20015c90                _end = .
Somit würde 0x20015c90 bedeuten, der RAM wird zu 89232 bytes genutzt.

3)
Ausgabe der Größen aus den object-files
arm-none-eabi-size.exe *.o

.data + .bss aller Dateien zusammengerechnet: 75282 bytes

Ok, da muss man noch die ganzen fill bytes dazu rechnen,
aber das sind keine mehrere 1000.

Was stimmt davon?

Gruß Adam
OP #6424330
Lesenswert?

Programmierer schrieb:
> Da fehlt der Stack und Heap

Selbst wenn ich den Stack dazu zähle, passt es nicht.
Heap nutze ich nicht.

Programmierer schrieb:
> Am hilfreichsten ist eigentlich "readelf -S Datei.elf"
1
[ 3] .relocate   REL             20000000 050000 000dc0 08 WAX  0   0  8
2
[ 4] .bss        NOBITS          20000dc0 050dc0 012ed0 00  WA  0   0  8
3
[ 5] .stack      NOBITS          20013c90 050dc0 002000 00  WA  0   0  1

Da komme ich auch auf 89232 bytes, wie es laut dem map-file ist.
Angehängte Dateien:

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