Hallo zusammen,
mir ist gerade aufgefallen, dass avr-size anscheinend keine globalen
Variablen berücksichtigt, wenn man es auf eine .o-Datei anwendet. Ist
das normal?
Beispiel:
1 | // test.c
|
2 |
|
3 | char buffer_global[16];
|
4 | static char buffer_local[32];
|
5 |
|
6 | int main(void) {}
|
Das ergibt:
1 | > avr-gcc -c test.c
|
2 | > avr-gcc -o test.elf test.o
|
3 | > avr-size test.o
|
4 | text data bss dec hex filename
|
5 | 14 0 32 46 2e test.o
|
6 | > avr-size test.elf
|
7 | text data bss dec hex filename
|
8 | 54 0 48 102 66 test.elf
|
Das globale Array scheint also erst nach dem Linken berücksichtigt zu
werden. Aber warum? Es ist doch Teil von test.o und darf auch nicht
nochmal wo anders definiert werden.
Gibt es eine Möglichkeit den Speicherverbrauch der globalen Variablen
einer .o-Datei mit anzuzeigen ohne jede einzeln in eine .elf-Datei zu
linken?