Hallo,
Danke, Timer Funktionen werden ich wohl mal ersetzen.
Was ich noch nicht ganz verstehe, im GCC Tutorial steht
1 | Speicherverbrauch nach Funktionen aufschlüsseln
|
2 |
|
3 | * Map File anschauen
|
4 | o dort sind alle globalen und statischen Variablen enthalten
|
5 | o Aus der Differenz der Anfangsadressen kann man die Programmgröße der Funktionen berechnen
|
Ausschnitt meiner *.map File
Funktionen:
1 | 0x20005000 _estack = 0x20005000
|
2 | 0x08010000 _seeprom_emul = 0x8010000
|
3 | 0x00000100 _Minimum_Stack_Size = 0x100
|
4 |
|
5 | .text 0x08000000 0xa340
|
6 | 0x08000000 . = ALIGN (0x4)
|
7 | *(.isr_vectorsrom)
|
8 | .isr_vectorsrom
|
9 | 0x08000000 0x10c ROM_RUN/startup_stm32f10x_md.o
|
10 | 0x08000000 g_pfnVectors
|
11 | 0x0800010c . = ALIGN (0x4)
|
12 | *(.text* .stub .gnu.linkonce.t.*)
|
13 | .text.__enable_irq
|
14 | 0x0800010c 0x4 ROM_RUN/main.o
|
15 | .text.__disable_irq
|
16 | 0x08000110 0x4 ROM_RUN/main.o
|
17 | .text.NVIC_SetPriority
|
18 | 0x08000114 0x2c ROM_RUN/main.o
|
19 | .text.positiv 0x08000140 0x8 ROM_RUN/main.o
|
20 | 0x08000140 positiv
|
21 | .text.Delay 0x08000148 0x14 ROM_RUN/main.o
|
22 | 0x08000148 Delay
|
23 | .text.TIM3_IRQHandler
|
24 | 0x0800015c 0x74 ROM_RUN/main.o
|
25 | 0x0800015c TIM3_IRQHandler
|
26 | .text.TIM4_IRQHandler
|
27 | 0x080001d0 0xf0 ROM_RUN/main.o
|
28 | 0x080001d0 TIM4_IRQHandler
|
Aus der Auflistung der Variablen:
1 | .bss.tmp1.6175
|
2 | 0x2000070c 0x4 ROM_RUN/main.o
|
3 | .bss.file 0x20000710 0x224 ROM_RUN/log_to_sd.o
|
4 | .bss.logdata_schreibvorgang
|
5 | 0x20000934 0x1 ROM_RUN/log_to_sd.o
|
6 | *fill* 0x20000935 0x3 00
|
7 | .bss.fatfs 0x20000938 0x230 ROM_RUN/log_to_sd.o
|
8 | .bss.fileinfo 0x20000b68 0x18 ROM_RUN/log_to_sd.o
|
9 | .bss.dir 0x20000b80 0x1c ROM_RUN/log_to_sd.o
|
10 | .bss.logdata_sicherung
|
11 | 0x20000b9c 0x1 ROM_RUN/log_to_sd.o
|
12 | *fill* 0x20000b9d 0x1 00
|
13 | .bss.Fsid 0x20000b9e 0x2 ROM_RUN/ff.o
|
14 | .bss.FatFs 0x20000ba0 0x4 ROM_RUN/ff.o
|
15 | .bss.Timer1 0x20000ba4 0x4 ROM_RUN/sd_spi_stm32.o
|
16 | .bss.Timer2 0x20000ba8 0x4 ROM_RUN/sd_spi_stm32.o
|
17 | .bss.CardType 0x20000bac 0x1 ROM_RUN/sd_spi_stm32.o
|
18 | *fill* 0x20000bad 0x3 00
|
19 | .bss.pv.3724 0x20000bb0 0x4 ROM_RUN/sd_spi_stm32.o
|
Versteh ich das richtig, die Auflistung ist immer
.Name Speicheradresse(?) Speichergröße Dateipfad
?
Alles 32 Bit Integer werden hier zumindest als 0x4 angegeben.
Das erkenne ich schon mal. Nur gibt das keinen Sinn. (4 für 32bit)
Die Differenz der Speicheadresse ergibt hier auch 4.
Danke
Uwe