У меня есть программа C, работающая на микроконтроллере AVR32 (UC3C0512C). Выдача команды avr32-size -A PROGRAM.elf
генерирует следующий вывод:Как интерпретировать выход avr32-размера?
PROGRAM.elf :
section size addr
.reset 8200 2147483648
.rela.got 0 2147491848
.text 99512 2147491848
.exception 512 2147591680
.rodata 5072 2147592192
.dalign 4 4
.data 7036 8
.balign 4 7044
.bss 5856 7048
.heap 48536 12904
.comment 48 0
.debug_aranges 8672 0
.debug_pubnames 14476 0
.debug_info 311236 0
.debug_abbrev 49205 0
.debug_line 208324 0
.debug_frame 23380 0
.debug_str 43961 0
.debug_loc 63619 0
.debug_macinfo 94469328 0
.stack 4096 61440
.data_hram0 512 2684354560
.debug_ranges 8368 0
Total 95379957
Может кто-нибудь объяснить, как интерпретировать эти значения? Как рассчитать использование flash и ram на основе этого списка?
Update 1:
Без -A
флага, я получаю следующее:
text data bss dec hex filename
113296 7548 58496 179340 2bc8c PROGRAM.elf
Update 2:
Я не использую динамическое распределение памяти, так согласно avr-libc user-manual, свободное пространство оперативной памяти должно быть просто: stackpointer
минус __heap_start
.
В этом случае: 61440 - 12904 = 48536
байт свободный объем оперативной памяти.
Может кто-нибудь подтвердить это?
Спасибо за ваш ответ. Я дважды проверил. Оба выхода были сгенерированы с тем же файлом .elf. – sergej