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