我在 AVR32 微控制器 (UC3C0512C) 上运行 C 程序。发出avr32-size -A PROGRAM.elf
命令会生成以下输出:
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
有人可以解释如何解释这些值吗?如何根据此列表计算闪存和内存使用量?
更新1:
没有-A
标志,我得到以下信息:
text data bss dec hex filename
113296 7548 58496 179340 2bc8c PROGRAM.elf
更新 2:
我没有使用动态内存分配,所以根据avr-libc 用户手册,可用 RAM 空间应该很简单:stackpointer
减号__heap_start
。
在这种情况下:61440 - 12904 = 48536
字节空闲 RAM 空间。
有人可以确认吗?