Forum: Compiler & IDEs Ist das eine Verbesserung?


von Gast (Gast)


Lesenswert?

Ich habe eine Funktion umgebaut und eine paar Konstanten-Arrays ins 
Flash verlagert.

Ich werde aus der Meldung nicht ganz schlau (gibt's da ne Erklärung zu?) 
aber nehme an, dass die 64 Bytes ".data" jetzt zum .text gezählt werden, 
und durch das geänderte Programm 32 Bytes gespart werden. Stimmt's?

Was ist den der Bereich .data, in dem anscheinend const variablen 
untergebracht werden?
1
Size before:
2
main.elf  :
3
section            size      addr
4
.text              1460         0
5
.data                64   8388704
6
.bss                 25   8388768
7
.stab              1692         0
8
.stabstr             84         0
9
.debug_aranges      264         0
10
.debug_pubnames     576         0
11
.debug_info        3587         0
12
.debug_abbrev      1405         0
13
.debug_line        3267         0
14
.debug_frame        432         0
15
.debug_str          991         0
16
.debug_loc         2292         0
17
.debug_ranges       288         0
18
Total             16427
1
Size after:
2
main.elf  :
3
section            size      addr
4
.text              1492         0
5
.bss                 25   8388704
6
.stab              1692         0
7
.stabstr             84         0
8
.debug_aranges      264         0
9
.debug_pubnames     584         0
10
.debug_info        3594         0
11
.debug_abbrev      1392         0
12
.debug_line        3209         0
13
.debug_frame        432         0
14
.debug_str          985         0
15
.debug_loc         2349         0
16
.debug_ranges       288         0
17
Total             16390

von Stefan E. (sternst)


Lesenswert?

Gast schrieb:

> Was ist den der Bereich .data, in dem anscheinend const variablen
> untergebracht werden?

In .data liegen die ungleich Null initialisierten globalen und statisch 
lokalen Variablen. Also z.B.
1
uint8_t var = 47;

Übrigens beansprucht .data in gleichem Maße Platz im RAM (für die 
Variable), wie auch im Flash (für den Initialisierungswert).

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.