Forum: Compiler & IDEs Unterschied zwischen arm-eabi-nm und arm-eabi-size?


von Alu-Hut-Träger (Gast)


Lesenswert?

1
arm-eabi-nm --print-size --radix=d --special-syms --synthetic obj.elf \
2
|grep -i " t " \
3
|awk 'BEGIN {sum=0} {sum +=($2)} END {printf "%d\n", sum }'
4
5
7302
6
7
arm-eabi-size obj.elf
8
   text    data     bss     dec     hex filename
9
   8448      36   15056   23540    5bf4 obj.elf

Die 1146 Byte sind wo?

Die 1146 Byte machen was?

Warum werden sie versteck?

von Markus F. (mfro)


Lesenswert?

Es gibt Dinge, die das Linkerscript ins Text-Segment packt (weil sie 
dahingehören), obwohl sie (eigentlich) kein Text sind (die 
Vektor-Tabelle, z.B.). Die erwischt dein "Heimwerker-Size" nicht.

Versteckt wird da nix.

von Alu-Hut-Träger (Gast)


Lesenswert?

Markus F. schrieb:

> Versteckt wird da nix.

OK, aber wie kann ich mir die Dinger anzeigen lassen die im .text 
(flash) landen, aber von 'nm' nicht angezeigt werden?

Am besten im Format:
Filename,Zeilenummer,(irgent etwas mit Wiedererkennungswert, je nach 
Typ)

von Markus F. (mfro)


Lesenswert?

Alu-Hut-Träger schrieb:
> Am besten im Format:
> Filename,Zeilenummer,(irgent etwas mit Wiedererkennungswert, je nach
> Typ)

Linker-Mapfile

Beitrag #5213478 wurde vom Autor gelöscht.
von Alu-Hut-Träger (Gast) (Gast)


Lesenswert?

Markus F. schrieb:

> Linker-Mapfile

Ne das is nutzlos:

.rodata         0x0000000000000750       0x1a

Das war ein: puts("Hello...");

von Markus F. (mfro)


Lesenswert?

bei mir sieht das anders aus (Beispiel):

1
Linker script and memory map
2
3
                0x0000000000002004                TOTAL_RESERVED_STACK = 0x2004
4
                0x0000000020008000                _top_stack = 0x20008000
5
                0x0000000000000000                TOTAL_RESERVED_HEAP = 0x0
6
7
.text           0x0000000000000000     0x357c
8
 CREATE_OBJECT_SYMBOLS
9
                0x0000000000000000                __interrupt_vector_table = .
10
 *(.interrupt_vector_table)
11
 .interrupt_vector_table
12
                0x0000000000000000      0x410 ./teensy/objs/crt0.o
13
 *(.startup)
14
 .startup       0x0000000000000410       0xac ./teensy/objs/crt0.o
15
                0x0000000000000410                reset_handler
16
                0x0000000000000410                _startup
17
                0x0000000000000486                HardFault_Handler
18
                0x0000000000000488                MemManage_Handler
19
                0x000000000000048a                BusFault_Handler
20
                0x000000000000048c                UsageFault_Handler
21
                0x000000000000048e                SVC_Handler
22
                0x0000000000000490                DebugMon_Handler
23
                0x0000000000000492                PendSV_Handler
24
                0x0000000000000494                SysTick_Handler
25
                0x0000000000000496                Reserved96_IRQHandler

Wie hast Du das Map-File erzeugt?

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.