mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
tools: Support Python 3 in idf_size.py
This commit is contained in:
parent
414b84c041
commit
5cdff46370
@ -389,6 +389,23 @@ test_idf_monitor:
|
|||||||
- ./run_test_idf_monitor.py
|
- ./run_test_idf_monitor.py
|
||||||
- pyenv global system
|
- pyenv global system
|
||||||
|
|
||||||
|
test_idf_size:
|
||||||
|
<<: *host_test_template
|
||||||
|
artifacts:
|
||||||
|
when: on_failure
|
||||||
|
paths:
|
||||||
|
- tools/test_idf_size/output
|
||||||
|
- tools/test_idf_size/.coverage
|
||||||
|
expire_in: 1 week
|
||||||
|
script:
|
||||||
|
- cd ${IDF_PATH}/tools/test_idf_size
|
||||||
|
- source /opt/pyenv/activate
|
||||||
|
- pyenv global 2.7.15
|
||||||
|
- ./test.sh
|
||||||
|
- pyenv global 3.4.8
|
||||||
|
- ./test.sh
|
||||||
|
- pyenv global system
|
||||||
|
|
||||||
test_esp_err_to_name_on_host:
|
test_esp_err_to_name_on_host:
|
||||||
<<: *host_test_template
|
<<: *host_test_template
|
||||||
artifacts:
|
artifacts:
|
||||||
|
@ -40,3 +40,4 @@ tools/windows/eclipse_make.sh
|
|||||||
tools/test_idf_monitor/run_test_idf_monitor.py
|
tools/test_idf_monitor/run_test_idf_monitor.py
|
||||||
tools/mass_mfg/mfg_gen.py
|
tools/mass_mfg/mfg_gen.py
|
||||||
tools/unit-test-app/unit_test.py
|
tools/unit-test-app/unit_test.py
|
||||||
|
tools/test_idf_size/test.sh
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# Includes information which is not shown in "xtensa-esp32-elf-size",
|
# Includes information which is not shown in "xtensa-esp32-elf-size",
|
||||||
# or easy to parse from "xtensa-esp32-elf-objdump" or raw map files.
|
# or easy to parse from "xtensa-esp32-elf-objdump" or raw map files.
|
||||||
#
|
#
|
||||||
# Copyright 2017 Espressif Systems (Shanghai) PTE LTD
|
# Copyright 2017-2018 Espressif Systems (Shanghai) PTE LTD
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@ -20,6 +20,9 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
from __future__ import print_function
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
from builtins import dict
|
||||||
import argparse, sys, subprocess, re
|
import argparse, sys, subprocess, re
|
||||||
import os.path
|
import os.path
|
||||||
import pprint
|
import pprint
|
||||||
@ -48,12 +51,6 @@ def load_map_data(map_file):
|
|||||||
sections = load_sections(map_file)
|
sections = load_sections(map_file)
|
||||||
return memory_config, sections
|
return memory_config, sections
|
||||||
|
|
||||||
def output_section_for_address(memory_config, address):
|
|
||||||
for m in memory_config.values():
|
|
||||||
if m["origin"] <= address and m["origin"] + m["length"] > address:
|
|
||||||
return m["name"]
|
|
||||||
return None
|
|
||||||
|
|
||||||
def load_memory_config(map_file):
|
def load_memory_config(map_file):
|
||||||
""" Memory Configuration section is the total size of each output section """
|
""" Memory Configuration section is the total size of each output section """
|
||||||
result = {}
|
result = {}
|
||||||
@ -175,7 +172,7 @@ def main():
|
|||||||
print("Per-file contributions to ELF file:")
|
print("Per-file contributions to ELF file:")
|
||||||
print_detailed_sizes(sections, "file", "Object File")
|
print_detailed_sizes(sections, "file", "Object File")
|
||||||
if args.archive_details:
|
if args.archive_details:
|
||||||
print "Symbols within the archive:", args.archive_details, "(Not all symbols may be reported)"
|
print("Symbols within the archive:", args.archive_details, "(Not all symbols may be reported)")
|
||||||
print_archive_symbols(sections, args.archive_details)
|
print_archive_symbols(sections, args.archive_details)
|
||||||
|
|
||||||
def print_summary(memory_config, sections):
|
def print_summary(memory_config, sections):
|
||||||
@ -191,7 +188,7 @@ def print_summary(memory_config, sections):
|
|||||||
used_data = get_size(".dram0.data")
|
used_data = get_size(".dram0.data")
|
||||||
used_bss = get_size(".dram0.bss")
|
used_bss = get_size(".dram0.bss")
|
||||||
used_dram = used_data + used_bss
|
used_dram = used_data + used_bss
|
||||||
used_iram = sum( get_size(s) for s in sections.keys() if s.startswith(".iram0") )
|
used_iram = sum( get_size(s) for s in sections if s.startswith(".iram0") )
|
||||||
flash_code = get_size(".flash.text")
|
flash_code = get_size(".flash.text")
|
||||||
flash_rodata = get_size(".flash.rodata")
|
flash_rodata = get_size(".flash.rodata")
|
||||||
total_size = used_data + used_iram + flash_code + flash_rodata
|
total_size = used_data + used_iram + flash_code + flash_rodata
|
||||||
@ -222,7 +219,7 @@ def print_detailed_sizes(sections, key, header):
|
|||||||
"Total")
|
"Total")
|
||||||
print("%24s %10s %6s %6s %10s %8s %7s" % headings)
|
print("%24s %10s %6s %6s %10s %8s %7s" % headings)
|
||||||
result = {}
|
result = {}
|
||||||
for k in (sizes.keys()):
|
for k in sizes:
|
||||||
v = sizes[k]
|
v = sizes[k]
|
||||||
result[k] = {}
|
result[k] = {}
|
||||||
result[k]["data"] = v.get(".dram0.data", 0)
|
result[k]["data"] = v.get(".dram0.data", 0)
|
||||||
@ -235,7 +232,11 @@ def print_detailed_sizes(sections, key, header):
|
|||||||
def return_total_size(elem):
|
def return_total_size(elem):
|
||||||
val = elem[1]
|
val = elem[1]
|
||||||
return val["total"]
|
return val["total"]
|
||||||
for k,v in sorted(result.items(), key=return_total_size, reverse=True):
|
def return_header(elem):
|
||||||
|
return elem[0]
|
||||||
|
s = sorted(list(result.items()), key=return_header)
|
||||||
|
# do a secondary sort in order to have consistent order (for diff-ing the output)
|
||||||
|
for k,v in sorted(s, key=return_total_size, reverse=True):
|
||||||
if ":" in k: # print subheadings for key of format archive:file
|
if ":" in k: # print subheadings for key of format archive:file
|
||||||
sh,k = k.split(":")
|
sh,k = k.split(":")
|
||||||
print("%24s %10d %6d %6d %10d %8d %7d" % (k[:24],
|
print("%24s %10d %6d %6d %10d %8d %7d" % (k[:24],
|
||||||
@ -261,12 +262,14 @@ def print_archive_symbols(sections, archive):
|
|||||||
s["sym_name"] = re.sub("(.text.|.literal.|.data.|.bss.|.rodata.)", "", s["sym_name"]);
|
s["sym_name"] = re.sub("(.text.|.literal.|.data.|.bss.|.rodata.)", "", s["sym_name"]);
|
||||||
result[section_name][s["sym_name"]] = result[section_name].get(s["sym_name"], 0) + s["size"]
|
result[section_name][s["sym_name"]] = result[section_name].get(s["sym_name"], 0) + s["size"]
|
||||||
for t in interested_sections:
|
for t in interested_sections:
|
||||||
print "\nSymbols from section:", t
|
print("\nSymbols from section:", t)
|
||||||
section_total = 0
|
section_total = 0
|
||||||
for key,val in sorted(result[t].items(), key=lambda (k,v): v, reverse=True):
|
s = sorted(list(result[t].items()), key=lambda k_v: k_v[0])
|
||||||
print("%s(%d)"% (key.replace(t + ".", ""), val)),
|
# do a secondary sort in order to have consistent order (for diff-ing the output)
|
||||||
|
for key,val in sorted(s, key=lambda k_v: k_v[1], reverse=True):
|
||||||
|
print(("%s(%d)"% (key.replace(t + ".", ""), val)), end=' ')
|
||||||
section_total += val
|
section_total += val
|
||||||
print "\nSection total:",section_total
|
print("\nSection total:",section_total)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
28901
tools/test_idf_size/app.map
Normal file
28901
tools/test_idf_size/app.map
Normal file
File diff suppressed because it is too large
Load Diff
383
tools/test_idf_size/expected_output
Normal file
383
tools/test_idf_size/expected_output
Normal file
@ -0,0 +1,383 @@
|
|||||||
|
Total sizes:
|
||||||
|
DRAM .data size: 9324 bytes
|
||||||
|
DRAM .bss size: 8296 bytes
|
||||||
|
Used static DRAM: 17620 bytes ( 163116 available, 9.7% used)
|
||||||
|
Used static IRAM: 38932 bytes ( 92140 available, 29.7% used)
|
||||||
|
Flash code: 146944 bytes
|
||||||
|
Flash rodata: 39580 bytes
|
||||||
|
Total image size:~ 234780 bytes (.bin may be padded larger)
|
||||||
|
Total sizes:
|
||||||
|
DRAM .data size: 9324 bytes
|
||||||
|
DRAM .bss size: 8296 bytes
|
||||||
|
Used static DRAM: 17620 bytes ( 163116 available, 9.7% used)
|
||||||
|
Used static IRAM: 38932 bytes ( 92140 available, 29.7% used)
|
||||||
|
Flash code: 146944 bytes
|
||||||
|
Flash rodata: 39580 bytes
|
||||||
|
Total image size:~ 234780 bytes (.bin may be padded larger)
|
||||||
|
Per-archive contributions to ELF file:
|
||||||
|
Archive File DRAM .data & .bss IRAM Flash code & rodata Total
|
||||||
|
liblwip.a 14 3751 0 66978 13936 84679
|
||||||
|
libc.a 0 0 0 55583 3889 59472
|
||||||
|
libesp32.a 2635 2375 7758 4814 8133 25715
|
||||||
|
libfreertos.a 4156 832 12853 0 1545 19386
|
||||||
|
libspi_flash.a 36 359 7004 886 1624 9909
|
||||||
|
libsoc.a 660 8 3887 0 3456 8011
|
||||||
|
libheap.a 1331 4 4376 1218 980 7909
|
||||||
|
libgcc.a 4 20 104 5488 888 6504
|
||||||
|
libvfs.a 232 103 0 3770 403 4508
|
||||||
|
libunity.a 0 121 0 2316 830 3267
|
||||||
|
libstdc++.a 8 16 0 1827 1062 2913
|
||||||
|
libnewlib.a 152 272 853 803 86 2166
|
||||||
|
libpthread.a 16 12 174 774 638 1614
|
||||||
|
libdriver.a 40 20 0 961 537 1558
|
||||||
|
liblog.a 8 268 456 396 166 1294
|
||||||
|
libapp_update.a 0 0 0 123 717 840
|
||||||
|
libtcpip_adapter.a 0 81 0 180 359 620
|
||||||
|
libhal.a 0 0 515 0 32 547
|
||||||
|
libm.a 0 0 92 0 0 92
|
||||||
|
libmain.a 0 0 0 53 10 63
|
||||||
|
libcxx.a 0 0 0 11 0 11
|
||||||
|
libxtensa-debug-module.a 0 0 8 0 0 8
|
||||||
|
libbootloader_support.a 0 0 0 0 0 0
|
||||||
|
libcoexist.a 0 0 0 0 0 0
|
||||||
|
libcore.a 0 0 0 0 0 0
|
||||||
|
libethernet.a 0 0 0 0 0 0
|
||||||
|
libmbedtls.a 0 0 0 0 0 0
|
||||||
|
libmesh.a 0 0 0 0 0 0
|
||||||
|
libnet80211.a 0 0 0 0 0 0
|
||||||
|
libnvs_flash.a 0 0 0 0 0 0
|
||||||
|
libphy.a 0 0 0 0 0 0
|
||||||
|
libpp.a 0 0 0 0 0 0
|
||||||
|
librtc.a 0 0 0 0 0 0
|
||||||
|
libsmartconfig_ack.a 0 0 0 0 0 0
|
||||||
|
libwpa.a 0 0 0 0 0 0
|
||||||
|
libwpa2.a 0 0 0 0 0 0
|
||||||
|
libwpa_supplicant.a 0 0 0 0 0 0
|
||||||
|
libwps.a 0 0 0 0 0 0
|
||||||
|
Total sizes:
|
||||||
|
DRAM .data size: 9324 bytes
|
||||||
|
DRAM .bss size: 8296 bytes
|
||||||
|
Used static DRAM: 17620 bytes ( 163116 available, 9.7% used)
|
||||||
|
Used static IRAM: 38932 bytes ( 92140 available, 29.7% used)
|
||||||
|
Flash code: 146944 bytes
|
||||||
|
Flash rodata: 39580 bytes
|
||||||
|
Total image size:~ 234780 bytes (.bin may be padded larger)
|
||||||
|
Per-file contributions to ELF file:
|
||||||
|
Object File DRAM .data & .bss IRAM Flash code & rodata Total
|
||||||
|
lib_a-vfprintf.o 0 0 0 14193 756 14949
|
||||||
|
lib_a-svfprintf.o 0 0 0 13834 756 14590
|
||||||
|
lib_a-svfiprintf.o 0 0 0 9642 1210 10852
|
||||||
|
lib_a-vfiprintf.o 0 0 0 9933 738 10671
|
||||||
|
nd6.o 8 1027 0 8427 136 9598
|
||||||
|
tcp_in.o 0 54 0 8127 916 9097
|
||||||
|
tasks.o 20 700 5667 0 503 6890
|
||||||
|
tcp_out.o 0 0 0 5060 1124 6184
|
||||||
|
sockets.o 0 728 0 4627 824 6179
|
||||||
|
tcp.o 4 23 0 4290 1384 5701
|
||||||
|
api_msg.o 0 0 0 3763 1366 5129
|
||||||
|
dhcp.o 0 8 0 3456 1401 4865
|
||||||
|
panic.o 2579 5 2145 0 0 4729
|
||||||
|
esp_err_to_name.o 0 0 0 50 4091 4141
|
||||||
|
unwind-dw2-fde.o 4 20 0 3316 404 3744
|
||||||
|
pbuf.o 0 1 0 2453 1161 3615
|
||||||
|
portasm.o 3084 0 480 0 0 3564
|
||||||
|
lib_a-dtoa.o 0 0 0 3522 13 3535
|
||||||
|
etharp.o 0 241 0 2618 658 3517
|
||||||
|
ip6.o 0 0 0 3212 124 3336
|
||||||
|
dns.o 0 1292 0 1809 206 3307
|
||||||
|
spi_flash_rom_patch.o 0 0 2518 0 766 3284
|
||||||
|
udp.o 2 4 0 3020 216 3242
|
||||||
|
intr_alloc.o 8 22 726 1749 710 3215
|
||||||
|
multi_heap.o 857 0 2217 0 0 3074
|
||||||
|
queue.o 8 56 2569 0 369 3002
|
||||||
|
flash_ops.o 32 41 2352 99 0 2524
|
||||||
|
unwind-dw2-xtensa.o 0 0 0 2172 324 2496
|
||||||
|
rtc_clk.o 660 8 1794 0 0 2462
|
||||||
|
lib_a-mprec.o 0 0 0 2134 296 2430
|
||||||
|
vfs.o 192 40 0 1995 132 2359
|
||||||
|
ip6_frag.o 0 6 0 1905 442 2353
|
||||||
|
api_lib.o 0 0 0 1425 919 2344
|
||||||
|
igmp.o 0 12 0 1604 707 2323
|
||||||
|
dbg_stubs.o 0 2072 32 100 0 2204
|
||||||
|
vfs_uart.o 40 63 0 1775 271 2149
|
||||||
|
unity_platform.o 0 13 0 1511 600 2124
|
||||||
|
esp_timer_esp32.o 8 26 1295 254 526 2109
|
||||||
|
rtc_periph.o 0 0 0 0 2080 2080
|
||||||
|
flash_mmap.o 0 296 1298 124 327 2045
|
||||||
|
heap_caps.o 4 0 1195 188 593 1980
|
||||||
|
eh_personality.o 0 0 0 1561 384 1945
|
||||||
|
ip4.o 0 6 0 1664 139 1809
|
||||||
|
netif.o 0 241 0 1239 287 1767
|
||||||
|
xtensa_vectors.o 8 0 1697 0 36 1741
|
||||||
|
cpu_start.o 0 1 806 277 486 1570
|
||||||
|
clk.o 0 0 67 581 893 1541
|
||||||
|
timers.o 8 56 1149 0 233 1446
|
||||||
|
sys_arch.o 0 8 0 1216 222 1446
|
||||||
|
multi_heap_poisoning.o 470 0 964 0 0 1434
|
||||||
|
heap_caps_init.o 0 4 0 1030 387 1421
|
||||||
|
mld6.o 0 4 0 1334 0 1338
|
||||||
|
cache_utils.o 4 14 836 81 390 1325
|
||||||
|
raw.o 0 4 0 1087 223 1314
|
||||||
|
esp_timer.o 8 20 702 429 142 1301
|
||||||
|
log.o 8 268 456 396 166 1294
|
||||||
|
system_api.o 0 8 589 0 662 1259
|
||||||
|
soc_memory_layout.o 0 0 0 0 1239 1239
|
||||||
|
icmp.o 0 0 0 769 371 1140
|
||||||
|
xtensa_intr_asm.o 1024 0 51 0 0 1075
|
||||||
|
port.o 0 16 617 0 369 1002
|
||||||
|
pthread.o 8 8 174 298 512 1000
|
||||||
|
icmp6.o 0 0 0 863 127 990
|
||||||
|
rtc_init.o 0 0 980 0 0 980
|
||||||
|
unity.o 0 108 0 767 90 965
|
||||||
|
rtc_time.o 0 0 803 0 137 940
|
||||||
|
dport_access.o 8 40 539 189 129 905
|
||||||
|
lib_a-fseeko.o 0 0 0 862 0 862
|
||||||
|
time.o 0 32 139 691 0 862
|
||||||
|
tcpip.o 0 16 0 644 191 851
|
||||||
|
esp_ota_ops.o 0 0 0 123 717 840
|
||||||
|
periph_ctrl.o 8 0 0 520 256 784
|
||||||
|
timers.o 0 12 0 638 131 781
|
||||||
|
partition.o 0 8 0 582 141 731
|
||||||
|
locks.o 8 0 552 0 84 644
|
||||||
|
ipc.o 0 36 159 329 104 628
|
||||||
|
tcpip_adapter_lwip.o 0 81 0 180 359 620
|
||||||
|
pthread_local_storage.o 8 4 0 476 126 614
|
||||||
|
inet_chksum.o 0 0 0 580 0 580
|
||||||
|
crosscore_int.o 8 8 204 126 148 494
|
||||||
|
netbuf.o 0 0 0 154 326 480
|
||||||
|
vfs_lwip.o 0 0 0 307 155 462
|
||||||
|
syscall_table.o 144 240 0 67 0 451
|
||||||
|
timer.o 16 0 0 112 281 409
|
||||||
|
int_wdt.o 0 1 87 301 0 389
|
||||||
|
eh_globals.o 0 16 0 149 193 358
|
||||||
|
brownout.o 0 0 0 145 191 336
|
||||||
|
freertos_hooks.o 8 128 43 137 0 316
|
||||||
|
windowspill_asm.o 0 0 311 0 0 311
|
||||||
|
cpu_util.o 0 0 310 0 0 310
|
||||||
|
rtc_module.o 8 8 0 291 0 307
|
||||||
|
xtensa_context.o 0 0 299 0 0 299
|
||||||
|
eh_terminate.o 0 0 0 117 141 258
|
||||||
|
ethernet.o 0 0 0 244 12 256
|
||||||
|
lib_a-puts.o 0 0 0 182 60 242
|
||||||
|
dport_panic_highint_hdl. 8 0 234 0 0 242
|
||||||
|
lib_a-reent.o 0 0 0 232 0 232
|
||||||
|
lib_a-fopen.o 0 0 0 228 0 228
|
||||||
|
dhcpserver.o 0 4 0 203 0 207
|
||||||
|
test_utils.o 0 0 0 38 140 178
|
||||||
|
lib_a-sprintf.o 0 0 0 167 0 167
|
||||||
|
cache_err_int.o 0 0 56 98 0 154
|
||||||
|
list.o 0 0 142 0 0 142
|
||||||
|
xtensa_intr.o 0 0 104 0 35 139
|
||||||
|
syscalls.o 0 0 94 45 0 139
|
||||||
|
si_class_type_info.o 0 0 0 0 136 136
|
||||||
|
lib_a-assert.o 0 0 0 68 60 128
|
||||||
|
lib_a-flags.o 0 0 0 127 0 127
|
||||||
|
lib_a-printf.o 0 0 0 116 0 116
|
||||||
|
ip4_addr.o 0 0 0 72 40 112
|
||||||
|
class_type_info.o 0 0 0 0 112 112
|
||||||
|
lib_a-s_frexp.o 0 0 0 110 0 110
|
||||||
|
ip.o 0 60 0 50 0 110
|
||||||
|
memp.o 0 0 0 0 108 108
|
||||||
|
lib2funcs.o 0 0 104 0 0 104
|
||||||
|
lib_a-vprintf.o 0 0 0 94 0 94
|
||||||
|
lib_a-s_fpclassify.o 0 0 92 0 0 92
|
||||||
|
def.o 0 0 0 91 0 91
|
||||||
|
lib_a-fiprintf.o 0 0 0 84 0 84
|
||||||
|
hw_random.o 0 4 74 0 0 78
|
||||||
|
stack_check.o 0 4 0 32 42 78
|
||||||
|
clock.o 0 0 72 0 0 72
|
||||||
|
reent_init.o 0 0 68 0 2 70
|
||||||
|
app_main.o 0 0 0 53 10 63
|
||||||
|
state_asm--restore_extra 0 0 62 0 0 62
|
||||||
|
state_asm--save_extra_nw 0 0 62 0 0 62
|
||||||
|
uart.o 8 12 0 38 0 58
|
||||||
|
new_opv.o 0 0 0 0 56 56
|
||||||
|
xtensa_vector_defaults.o 0 0 46 0 0 46
|
||||||
|
lib_a-fseek.o 0 0 0 45 0 45
|
||||||
|
_divdi3.o 0 0 0 0 40 40
|
||||||
|
_moddi3.o 0 0 0 0 40 40
|
||||||
|
_udivdi3.o 0 0 0 0 40 40
|
||||||
|
_umoddi3.o 0 0 0 0 40 40
|
||||||
|
new_op.o 0 0 0 0 40 40
|
||||||
|
xtensa_init.o 0 4 32 0 0 36
|
||||||
|
interrupts--intlevel.o 0 0 0 0 32 32
|
||||||
|
init.o 0 0 0 27 0 27
|
||||||
|
wifi_init.o 0 0 0 17 9 26
|
||||||
|
ip6_addr.o 0 0 0 0 20 20
|
||||||
|
lib_a-errno.o 0 0 0 10 0 10
|
||||||
|
int_asm--set_intclear.o 0 0 8 0 0 8
|
||||||
|
eri.o 0 0 8 0 0 8
|
||||||
|
cxx_exception_stubs.o 0 0 0 6 0 6
|
||||||
|
cxx_guards.o 0 0 0 5 0 5
|
||||||
|
FreeRTOS-openocd.o 4 0 0 0 0 4
|
||||||
|
eh_term_handler.o 4 0 0 0 0 4
|
||||||
|
eh_unex_handler.o 4 0 0 0 0 4
|
||||||
|
bootloader_flash.o 0 0 0 0 0 0
|
||||||
|
bootloader_sha.o 0 0 0 0 0 0
|
||||||
|
esp_image_format.o 0 0 0 0 0 0
|
||||||
|
lib_a-fputs.o 0 0 0 0 0 0
|
||||||
|
lib_a-snprintf.o 0 0 0 0 0 0
|
||||||
|
lib_a-strerror.o 0 0 0 0 0 0
|
||||||
|
lib_a-sysgettod.o 0 0 0 0 0 0
|
||||||
|
lib_a-u_strerr.o 0 0 0 0 0 0
|
||||||
|
lib_a-vsnprintf.o 0 0 0 0 0 0
|
||||||
|
lib_a-xpg_strerror_r.o 0 0 0 0 0 0
|
||||||
|
coexist_api.o 0 0 0 0 0 0
|
||||||
|
coexist_arbit.o 0 0 0 0 0 0
|
||||||
|
coexist_core.o 0 0 0 0 0 0
|
||||||
|
coexist_dbg.o 0 0 0 0 0 0
|
||||||
|
coexist_hw.o 0 0 0 0 0 0
|
||||||
|
coexist_param.o 0 0 0 0 0 0
|
||||||
|
coexist_timer.o 0 0 0 0 0 0
|
||||||
|
misc_nvs.o 0 0 0 0 0 0
|
||||||
|
gpio.o 0 0 0 0 0 0
|
||||||
|
ets_timer_legacy.o 0 0 0 0 0 0
|
||||||
|
event_default_handlers.o 0 0 0 0 0 0
|
||||||
|
event_loop.o 0 0 0 0 0 0
|
||||||
|
lib_printf.o 0 0 0 0 0 0
|
||||||
|
phy_init.o 0 0 0 0 0 0
|
||||||
|
sha.o 0 0 0 0 0 0
|
||||||
|
wifi_os_adapter.o 0 0 0 0 0 0
|
||||||
|
emac_dev.o 0 0 0 0 0 0
|
||||||
|
emac_main.o 0 0 0 0 0 0
|
||||||
|
event_groups.o 0 0 0 0 0 0
|
||||||
|
ringbuf.o 0 0 0 0 0 0
|
||||||
|
_addsubdf3.o 0 0 0 0 0 0
|
||||||
|
_cmpdf2.o 0 0 0 0 0 0
|
||||||
|
_divdf3.o 0 0 0 0 0 0
|
||||||
|
_divsf3.o 0 0 0 0 0 0
|
||||||
|
_extendsfdf2.o 0 0 0 0 0 0
|
||||||
|
_fixdfsi.o 0 0 0 0 0 0
|
||||||
|
_floatdidf.o 0 0 0 0 0 0
|
||||||
|
_floatdisf.o 0 0 0 0 0 0
|
||||||
|
_floatsidf.o 0 0 0 0 0 0
|
||||||
|
_muldf3.o 0 0 0 0 0 0
|
||||||
|
_popcountsi2.o 0 0 0 0 0 0
|
||||||
|
ethernetif.o 0 0 0 0 0 0
|
||||||
|
ethip6.o 0 0 0 0 0 0
|
||||||
|
wlanif.o 0 0 0 0 0 0
|
||||||
|
esp_sha256.o 0 0 0 0 0 0
|
||||||
|
mesh.o 0 0 0 0 0 0
|
||||||
|
mesh_common.o 0 0 0 0 0 0
|
||||||
|
mesh_config.o 0 0 0 0 0 0
|
||||||
|
mesh_main.o 0 0 0 0 0 0
|
||||||
|
mesh_parent.o 0 0 0 0 0 0
|
||||||
|
mesh_route.o 0 0 0 0 0 0
|
||||||
|
mesh_schedule.o 0 0 0 0 0 0
|
||||||
|
mesh_timer.o 0 0 0 0 0 0
|
||||||
|
mesh_utilities.o 0 0 0 0 0 0
|
||||||
|
mesh_wifi.o 0 0 0 0 0 0
|
||||||
|
ieee80211.o 0 0 0 0 0 0
|
||||||
|
ieee80211_action.o 0 0 0 0 0 0
|
||||||
|
ieee80211_action_vendor. 0 0 0 0 0 0
|
||||||
|
ieee80211_api.o 0 0 0 0 0 0
|
||||||
|
ieee80211_crypto.o 0 0 0 0 0 0
|
||||||
|
ieee80211_crypto_ccmp.o 0 0 0 0 0 0
|
||||||
|
ieee80211_crypto_tkip.o 0 0 0 0 0 0
|
||||||
|
ieee80211_crypto_wep.o 0 0 0 0 0 0
|
||||||
|
ieee80211_debug.o 0 0 0 0 0 0
|
||||||
|
ieee80211_ets.o 0 0 0 0 0 0
|
||||||
|
ieee80211_hostap.o 0 0 0 0 0 0
|
||||||
|
ieee80211_ht.o 0 0 0 0 0 0
|
||||||
|
ieee80211_ie_vendor.o 0 0 0 0 0 0
|
||||||
|
ieee80211_input.o 0 0 0 0 0 0
|
||||||
|
ieee80211_ioctl.o 0 0 0 0 0 0
|
||||||
|
ieee80211_mesh_quick.o 0 0 0 0 0 0
|
||||||
|
ieee80211_misc.o 0 0 0 0 0 0
|
||||||
|
ieee80211_nvs.o 0 0 0 0 0 0
|
||||||
|
ieee80211_output.o 0 0 0 0 0 0
|
||||||
|
ieee80211_phy.o 0 0 0 0 0 0
|
||||||
|
ieee80211_power.o 0 0 0 0 0 0
|
||||||
|
ieee80211_proto.o 0 0 0 0 0 0
|
||||||
|
ieee80211_regdomain.o 0 0 0 0 0 0
|
||||||
|
ieee80211_rfid.o 0 0 0 0 0 0
|
||||||
|
ieee80211_scan.o 0 0 0 0 0 0
|
||||||
|
ieee80211_sta.o 0 0 0 0 0 0
|
||||||
|
ieee80211_timer.o 0 0 0 0 0 0
|
||||||
|
wl_chm.o 0 0 0 0 0 0
|
||||||
|
wl_cnx.o 0 0 0 0 0 0
|
||||||
|
nvs_api.o 0 0 0 0 0 0
|
||||||
|
nvs_item_hash_list.o 0 0 0 0 0 0
|
||||||
|
nvs_page.o 0 0 0 0 0 0
|
||||||
|
nvs_pagemanager.o 0 0 0 0 0 0
|
||||||
|
nvs_storage.o 0 0 0 0 0 0
|
||||||
|
nvs_types.o 0 0 0 0 0 0
|
||||||
|
phy.o 0 0 0 0 0 0
|
||||||
|
phy_chip_v7.o 0 0 0 0 0 0
|
||||||
|
phy_chip_v7_ana.o 0 0 0 0 0 0
|
||||||
|
phy_chip_v7_cal.o 0 0 0 0 0 0
|
||||||
|
esf_buf.o 0 0 0 0 0 0
|
||||||
|
if_hwctrl.o 0 0 0 0 0 0
|
||||||
|
lmac.o 0 0 0 0 0 0
|
||||||
|
pm.o 0 0 0 0 0 0
|
||||||
|
pm_for_bcn_only_mode.o 0 0 0 0 0 0
|
||||||
|
pp.o 0 0 0 0 0 0
|
||||||
|
pp_debug.o 0 0 0 0 0 0
|
||||||
|
pp_timer.o 0 0 0 0 0 0
|
||||||
|
rate_control.o 0 0 0 0 0 0
|
||||||
|
trc.o 0 0 0 0 0 0
|
||||||
|
wdev.o 0 0 0 0 0 0
|
||||||
|
bt_bb.o 0 0 0 0 0 0
|
||||||
|
pm.o 0 0 0 0 0 0
|
||||||
|
rtc.o 0 0 0 0 0 0
|
||||||
|
rtc_analog.o 0 0 0 0 0 0
|
||||||
|
smartconfig_ack.o 0 0 0 0 0 0
|
||||||
|
gpio_periph.o 0 0 0 0 0 0
|
||||||
|
rtc_sleep.o 0 0 0 0 0 0
|
||||||
|
bad_alloc.o 0 0 0 0 0 0
|
||||||
|
del_op.o 0 0 0 0 0 0
|
||||||
|
del_opv.o 0 0 0 0 0 0
|
||||||
|
eh_exception.o 0 0 0 0 0 0
|
||||||
|
new_handler.o 0 0 0 0 0 0
|
||||||
|
pure.o 0 0 0 0 0 0
|
||||||
|
tinfo.o 0 0 0 0 0 0
|
||||||
|
ap_config.o 0 0 0 0 0 0
|
||||||
|
common.o 0 0 0 0 0 0
|
||||||
|
wpa.o 0 0 0 0 0 0
|
||||||
|
wpa_auth.o 0 0 0 0 0 0
|
||||||
|
wpa_auth_ie.o 0 0 0 0 0 0
|
||||||
|
wpa_common.o 0 0 0 0 0 0
|
||||||
|
wpa_debug.o 0 0 0 0 0 0
|
||||||
|
wpa_ie.o 0 0 0 0 0 0
|
||||||
|
wpa_main.o 0 0 0 0 0 0
|
||||||
|
wpabuf.o 0 0 0 0 0 0
|
||||||
|
wpas_glue.o 0 0 0 0 0 0
|
||||||
|
wpa2_internal.o 0 0 0 0 0 0
|
||||||
|
os_xtensa.o 0 0 0 0 0 0
|
||||||
|
wps_internal.o 0 0 0 0 0 0
|
||||||
|
Total sizes:
|
||||||
|
DRAM .data size: 9324 bytes
|
||||||
|
DRAM .bss size: 8296 bytes
|
||||||
|
Used static DRAM: 17620 bytes ( 163116 available, 9.7% used)
|
||||||
|
Used static IRAM: 38932 bytes ( 92140 available, 29.7% used)
|
||||||
|
Flash code: 146944 bytes
|
||||||
|
Flash rodata: 39580 bytes
|
||||||
|
Total image size:~ 234780 bytes (.bin may be padded larger)
|
||||||
|
Symbols within the archive: libdriver.a (Not all symbols may be reported)
|
||||||
|
|
||||||
|
Symbols from section: .dram0.data
|
||||||
|
timer_spinlock(16) periph_spinlock(8) s_rtc_isr_handler_list_lock(8) uart_selectlock(8)
|
||||||
|
Section total: 40
|
||||||
|
|
||||||
|
Symbols from section: .dram0.bss
|
||||||
|
p_uart_obj(12) s_rtc_isr_handle(4) s_rtc_isr_handler_list(4)
|
||||||
|
Section total: 20
|
||||||
|
|
||||||
|
Symbols from section: .iram0.text
|
||||||
|
|
||||||
|
Section total: 0
|
||||||
|
|
||||||
|
Symbols from section: .iram0.vectors
|
||||||
|
|
||||||
|
Section total: 0
|
||||||
|
|
||||||
|
Symbols from section: .flash.text
|
||||||
|
get_clk_en_mask(211) get_rst_en_mask(157) timer_group_intr_enable(112) rtc_isr(86) periph_module_enable(78) rtc_isr_ensure_installed(75) rtc_gpio_force_hold_dis_all(65) rtc_isr_register(65) is_wifi_clk_peripheral(28) uart_set_select_notif_callback(26) get_rst_en_reg(25) get_clk_en_reg(21) uart_get_selectlock(12)
|
||||||
|
Section total: 961
|
||||||
|
|
||||||
|
Symbols from section: .flash.rodata
|
||||||
|
str1.4(249) get_clk_en_mask(128) get_rst_en_mask(128) __FUNCTION__$5441(24) TG(8)
|
||||||
|
Section total: 537
|
||||||
|
Total sizes:
|
||||||
|
DRAM .data size: 0 bytes
|
||||||
|
DRAM .bss size: 0 bytes
|
12
tools/test_idf_size/test.sh
Executable file
12
tools/test_idf_size/test.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
{ coverage debug sys \
|
||||||
|
&& coverage erase &> output \
|
||||||
|
&& coverage run -a $IDF_PATH/tools/idf_size.py app.map &>> output \
|
||||||
|
&& coverage run -a $IDF_PATH/tools/idf_size.py --archives app.map &>> output \
|
||||||
|
&& coverage run -a $IDF_PATH/tools/idf_size.py --files app.map &>> output \
|
||||||
|
&& coverage run -a $IDF_PATH/tools/idf_size.py --archive_details libdriver.a app.map &>> output \
|
||||||
|
&& coverage run -a $IDF_PATH/tools/test_idf_size/test_idf_size.py &>> output \
|
||||||
|
&& diff output expected_output \
|
||||||
|
&& coverage report \
|
||||||
|
; } || { echo 'The test for idf_size has failed. Please examine the artifacts.' ; exit 1; }
|
37
tools/test_idf_size/test_idf_size.py
Normal file
37
tools/test_idf_size/test_idf_size.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
#
|
||||||
|
# Copyright 2018 Espressif Systems (Shanghai) PTE LTD
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
sys.path.append('..')
|
||||||
|
import idf_size
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
try:
|
||||||
|
idf_size.scan_to_header([], 'test')
|
||||||
|
except RuntimeError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
idf_size.load_memory_config(["Memory Configuration"])
|
||||||
|
pass
|
||||||
|
except RuntimeError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
idf_size.print_summary({"iram0_0_seg": {"length":0}, "dram0_0_seg": {"length":0}}, {})
|
||||||
|
except ZeroDivisionError:
|
||||||
|
pass
|
Loading…
Reference in New Issue
Block a user