Merge branch 'bugfix/add_dummy_to_total_size_v4.2' into 'release/v4.2'

Tools: fix bug with total size calculation issue (v4.2)

See merge request espressif/esp-idf!16862
This commit is contained in:
Roland Dobai
2022-02-10 14:04:35 +00:00
7 changed files with 587 additions and 665 deletions

View File

@@ -6,19 +6,8 @@
# Includes information which is not shown in "xtensa-esp32-elf-size",
# or easy to parse from "xtensa-esp32-elf-objdump" or raw map files.
#
# Copyright 2017-2021 Espressif Systems (Shanghai) CO 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.
# SPDX-FileCopyrightText: 2017-2022 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
#
from __future__ import division, print_function, unicode_literals
@@ -248,11 +237,10 @@ def load_map_data(map_file): # type: (TextIO) -> Tuple[str, Dict, Dict]
detected_chip = detect_target_chip(map_file)
sections = load_sections(map_file)
# Exclude the .dummy section, which usually means shared region among I/D buses
dummy_keys = [key for key in sections if key.endswith(('.dummy'))]
if dummy_keys:
sections.pop(*dummy_keys)
# Exclude the dummy and .text_end section, which usually means shared region among I/D buses
for key in list(sections.keys()):
if key.endswith(('dummy', '.text_end')):
sections.pop(key)
return detected_chip, segments, sections
@@ -582,8 +570,6 @@ class StructureForSummary(object):
r.dram_total = get_size(dram_filter)
iram_filter = filter(in_iram, segments)
r.iram_total = get_size(iram_filter)
if r.diram_total == 0:
r.diram_total = r.dram_total + r.iram_total
def filter_in_section(sections, section_to_check): # type: (Iterable[MemRegions.Region], str) -> List[MemRegions.Region]
return list(filter(lambda x: LinkingSections.in_section(x.section, section_to_check), sections)) # type: ignore
@@ -591,8 +577,6 @@ class StructureForSummary(object):
dram_sections = list(filter(in_dram, sections))
iram_sections = list(filter(in_iram, sections))
diram_sections = list(filter(in_diram, sections))
if not diram_sections:
diram_sections = dram_sections + iram_sections
flash_sections = filter_in_section(sections, 'flash')
dram_data_list = filter_in_section(dram_sections, 'data')

View File

@@ -1,4 +1,18 @@
***
Building project for esp32...
***
Running mem_test.py for esp32...
Test complete without errors
***
Building project for esp32s2...
***
Running mem_test.py for esp32s2...
Test complete without errors
***
Running idf_size.py...
Total sizes:
@@ -8,15 +22,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used)
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used)
.text size: 37908 bytes
.vectors size: 1024 bytes
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used)
.data size: 9324 bytes
.bss size: 8296 bytes
.text size: 37908 bytes
.vectors size: 1024 bytes
Used Flash size : 186524 bytes
.text : 146944 bytes
.rodata : 39580 bytes
Total image size: 283036 bytes (.bin may be padded larger)
Total image size: 234780 bytes (.bin may be padded larger)
***
Running idf_size.py on bootloader...
@@ -27,12 +36,7 @@ Used static DRAM: 7212 bytes ( 58324 remain, 11.0% used)
.rodata size: 7160 bytes
Used static IRAM: 18796 bytes ( 78484 remain, 19.3% used)
.text size: 18796 bytes
Used stat D/IRAM: 26008 bytes ( 136808 remain, 16.0% used)
.data size: 4 bytes
.bss size: 48 bytes
.text size: 18796 bytes
.rodata size: 7160 bytes
Total image size: 51920 bytes (.bin may be padded larger)
Total image size: 25960 bytes (.bin may be padded larger)
***
Running idf_size.py --archives...
@@ -43,15 +47,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used)
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used)
.text size: 37908 bytes
.vectors size: 1024 bytes
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used)
.data size: 9324 bytes
.bss size: 8296 bytes
.text size: 37908 bytes
.vectors size: 1024 bytes
Used Flash size : 186524 bytes
.text : 146944 bytes
.rodata : 39580 bytes
Total image size: 283036 bytes (.bin may be padded larger)
Total image size: 234780 bytes (.bin may be padded larger)
Per-archive contributions to ELF file:
Archive File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
liblwip.a 14 3751 0 0 3765 66978 13936 80928
@@ -102,15 +101,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used)
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used)
.text size: 37908 bytes
.vectors size: 1024 bytes
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used)
.data size: 9324 bytes
.bss size: 8296 bytes
.text size: 37908 bytes
.vectors size: 1024 bytes
Used Flash size : 186524 bytes
.text : 146944 bytes
.rodata : 39580 bytes
Total image size: 283036 bytes (.bin may be padded larger)
Total image size: 234780 bytes (.bin may be padded larger)
Per-file contributions to ELF file:
Object File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
lib_a-vfprintf.o 0 0 0 0 0 14193 704 14897
@@ -404,15 +398,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used)
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used)
.text size: 37908 bytes
.vectors size: 1024 bytes
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used)
.data size: 9324 bytes
.bss size: 8296 bytes
.text size: 37908 bytes
.vectors size: 1024 bytes
Used Flash size : 186524 bytes
.text : 146944 bytes
.rodata : 39580 bytes
Total image size: 283036 bytes (.bin may be padded larger)
Total image size: 234780 bytes (.bin may be padded larger)
Symbols within the archive: libdriver.a (Not all symbols may be reported)
@@ -487,16 +476,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 7212
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 18796 +20136 ( +13656 remain, +33792 total)
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 26008 +30544 (+118448 remain, +148992 total)
.data size: 9324 bytes 4 +9320
.bss size: 8296 bytes 48 +8248
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
.rodata size: 0 bytes 7160 -7160
Used Flash size : 186524 bytes 0 +186524
.text : 146944 bytes 0 +146944
.rodata : 39580 bytes 0 +39580
Total image size: 283036 bytes (.bin may be padded larger) 51920 +231116
Total image size: 234780 bytes (.bin may be padded larger) 25960 +208820
***
Running idf_size.py diff with itself...
@@ -510,15 +493,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 17620
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38932 ( +0 remain, +0 total)
.text size: 37908 bytes 37908
.vectors size: 1024 bytes 1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 56552 ( +0 remain, +0 total)
.data size: 9324 bytes 9324
.bss size: 8296 bytes 8296
.text size: 37908 bytes 37908
.vectors size: 1024 bytes 1024
Used Flash size : 186524 bytes 186524
.text : 146944 bytes 146944
.rodata : 39580 bytes 39580
Total image size: 283036 bytes (.bin may be padded larger) 283036
Total image size: 234780 bytes (.bin may be padded larger) 234780
***
Running idf_size.py diff with another app...
@@ -529,18 +507,13 @@ Total sizes of <CURRENT>: <REFERENCE>
Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 10604 +7016 ( -7016 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38959 -27 ( +27 remain, +0 total)
.text size: 37908 bytes 37932 -24
.vectors size: 1024 bytes 1027 -3
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 49563 +6989 ( -6989 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
.text size: 37908 bytes 37932 -24
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38956 -24 ( +24 remain, +0 total)
.text size: 37908 bytes 37929 -21
.vectors size: 1024 bytes 1027 -3
Used Flash size : 186524 bytes 99551 +86973
.text : 146944 bytes 77191 +69753
.rodata : 39580 bytes 22360 +17220
Total image size: 283036 bytes (.bin may be padded larger) 194629 +88407
Total image size: 234780 bytes (.bin may be padded larger) 147087 +87693
***
Running idf_size.py diff with app in reverse order...
@@ -551,18 +524,13 @@ Total sizes of <CURRENT>: <REFERENCE>
Used static DRAM: 10604 bytes ( 170132 remain, 5.9% used) 17620 -7016 ( +7016 remain, +0 total)
.data size: 8580 bytes 9324 -744
.bss size: 2024 bytes 8296 -6272
Used static IRAM: 38959 bytes ( 92113 remain, 29.7% used) 38932 +27 ( -27 remain, +0 total)
.text size: 37932 bytes 37908 +24
.vectors size: 1027 bytes 1024 +3
Used stat D/IRAM: 49563 bytes ( 262245 remain, 15.9% used) 56552 -6989 ( +6989 remain, +0 total)
.data size: 8580 bytes 9324 -744
.bss size: 2024 bytes 8296 -6272
.text size: 37932 bytes 37908 +24
Used static IRAM: 38956 bytes ( 92116 remain, 29.7% used) 38932 +24 ( -24 remain, +0 total)
.text size: 37929 bytes 37908 +21
.vectors size: 1027 bytes 1024 +3
Used Flash size : 99551 bytes 186524 -86973
.text : 77191 bytes 146944 -69753
.rodata : 22360 bytes 39580 -17220
Total image size: 194629 bytes (.bin may be padded larger) 283036 -88407
Total image size: 147087 bytes (.bin may be padded larger) 234780 -87693
***
Running idf_size.py diff --archives with bootloader...
@@ -577,16 +545,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 7212
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 18796 +20136 ( +13656 remain, +33792 total)
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 26008 +30544 (+118448 remain, +148992 total)
.data size: 9324 bytes 4 +9320
.bss size: 8296 bytes 48 +8248
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
.rodata size: 0 bytes 7160 -7160
Used Flash size : 186524 bytes 0 +186524
.text : 146944 bytes 0 +146944
.rodata : 39580 bytes 0 +39580
Total image size: 283036 bytes (.bin may be padded larger) 51920 +231116
Total image size: 234780 bytes (.bin may be padded larger) 25960 +208820
Per-archive contributions to ELF file:
Archive File DRAM .data & 0.bss & 0.rodata IRAM .text & 0.text & 0.vectors & _loader.text ram_st_total Flash .text & .rodata flash_total
| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>
@@ -648,15 +610,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 17620
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38932 ( +0 remain, +0 total)
.text size: 37908 bytes 37908
.vectors size: 1024 bytes 1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 56552 ( +0 remain, +0 total)
.data size: 9324 bytes 9324
.bss size: 8296 bytes 8296
.text size: 37908 bytes 37908
.vectors size: 1024 bytes 1024
Used Flash size : 186524 bytes 186524
.text : 146944 bytes 146944
.rodata : 39580 bytes 39580
Total image size: 283036 bytes (.bin may be padded larger) 283036
Total image size: 234780 bytes (.bin may be padded larger) 234780
Per-archive contributions to ELF file:
Archive File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>
@@ -709,18 +666,13 @@ Total sizes of <CURRENT>: <REFERENCE>
Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 10604 +7016 ( -7016 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38959 -27 ( +27 remain, +0 total)
.text size: 37908 bytes 37932 -24
.vectors size: 1024 bytes 1027 -3
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 49563 +6989 ( -6989 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
.text size: 37908 bytes 37932 -24
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38956 -24 ( +24 remain, +0 total)
.text size: 37908 bytes 37929 -21
.vectors size: 1024 bytes 1027 -3
Used Flash size : 186524 bytes 99551 +86973
.text : 146944 bytes 77191 +69753
.rodata : 39580 bytes 22360 +17220
Total image size: 283036 bytes (.bin may be padded larger) 194629 +88407
Total image size: 234780 bytes (.bin may be padded larger) 147087 +87693
Per-archive contributions to ELF file:
Archive File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>
@@ -785,18 +737,13 @@ Total sizes of <CURRENT>: <REFERENCE>
Used static DRAM: 10604 bytes ( 170132 remain, 5.9% used) 17620 -7016 ( +7016 remain, +0 total)
.data size: 8580 bytes 9324 -744
.bss size: 2024 bytes 8296 -6272
Used static IRAM: 38959 bytes ( 92113 remain, 29.7% used) 38932 +27 ( -27 remain, +0 total)
.text size: 37932 bytes 37908 +24
.vectors size: 1027 bytes 1024 +3
Used stat D/IRAM: 49563 bytes ( 262245 remain, 15.9% used) 56552 -6989 ( +6989 remain, +0 total)
.data size: 8580 bytes 9324 -744
.bss size: 2024 bytes 8296 -6272
.text size: 37932 bytes 37908 +24
Used static IRAM: 38956 bytes ( 92116 remain, 29.7% used) 38932 +24 ( -24 remain, +0 total)
.text size: 37929 bytes 37908 +21
.vectors size: 1027 bytes 1024 +3
Used Flash size : 99551 bytes 186524 -86973
.text : 77191 bytes 146944 -69753
.rodata : 22360 bytes 39580 -17220
Total image size: 194629 bytes (.bin may be padded larger) 283036 -88407
Total image size: 147087 bytes (.bin may be padded larger) 234780 -87693
Per-archive contributions to ELF file:
Archive File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>
@@ -865,16 +812,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 7212
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 18796 +20136 ( +13656 remain, +33792 total)
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 26008 +30544 (+118448 remain, +148992 total)
.data size: 9324 bytes 4 +9320
.bss size: 8296 bytes 48 +8248
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
.rodata size: 0 bytes 7160 -7160
Used Flash size : 186524 bytes 0 +186524
.text : 146944 bytes 0 +146944
.rodata : 39580 bytes 0 +39580
Total image size: 283036 bytes (.bin may be padded larger) 51920 +231116
Total image size: 234780 bytes (.bin may be padded larger) 25960 +208820
Per-file contributions to ELF file:
Object File DRAM .data & 0.bss & 0.rodata IRAM .text & 0.text & 0.vectors & _loader.text ram_st_total Flash .text & .rodata flash_total
| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>
@@ -1215,15 +1156,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 17620
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38932 ( +0 remain, +0 total)
.text size: 37908 bytes 37908
.vectors size: 1024 bytes 1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 56552 ( +0 remain, +0 total)
.data size: 9324 bytes 9324
.bss size: 8296 bytes 8296
.text size: 37908 bytes 37908
.vectors size: 1024 bytes 1024
Used Flash size : 186524 bytes 186524
.text : 146944 bytes 146944
.rodata : 39580 bytes 39580
Total image size: 283036 bytes (.bin may be padded larger) 283036
Total image size: 234780 bytes (.bin may be padded larger) 234780
Per-file contributions to ELF file:
Object File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>
@@ -1519,18 +1455,13 @@ Total sizes of <CURRENT>: <REFERENCE>
Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 10604 +7016 ( -7016 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38959 -27 ( +27 remain, +0 total)
.text size: 37908 bytes 37932 -24
.vectors size: 1024 bytes 1027 -3
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 49563 +6989 ( -6989 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
.text size: 37908 bytes 37932 -24
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38956 -24 ( +24 remain, +0 total)
.text size: 37908 bytes 37929 -21
.vectors size: 1024 bytes 1027 -3
Used Flash size : 186524 bytes 99551 +86973
.text : 146944 bytes 77191 +69753
.rodata : 39580 bytes 22360 +17220
Total image size: 283036 bytes (.bin may be padded larger) 194629 +88407
Total image size: 234780 bytes (.bin may be padded larger) 147087 +87693
Per-file contributions to ELF file:
Object File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>
@@ -2013,18 +1944,13 @@ Total sizes of <CURRENT>: <REFERENCE>
Used static DRAM: 10604 bytes ( 170132 remain, 5.9% used) 17620 -7016 ( +7016 remain, +0 total)
.data size: 8580 bytes 9324 -744
.bss size: 2024 bytes 8296 -6272
Used static IRAM: 38959 bytes ( 92113 remain, 29.7% used) 38932 +27 ( -27 remain, +0 total)
.text size: 37932 bytes 37908 +24
.vectors size: 1027 bytes 1024 +3
Used stat D/IRAM: 49563 bytes ( 262245 remain, 15.9% used) 56552 -6989 ( +6989 remain, +0 total)
.data size: 8580 bytes 9324 -744
.bss size: 2024 bytes 8296 -6272
.text size: 37932 bytes 37908 +24
Used static IRAM: 38956 bytes ( 92116 remain, 29.7% used) 38932 +24 ( -24 remain, +0 total)
.text size: 37929 bytes 37908 +21
.vectors size: 1027 bytes 1024 +3
Used Flash size : 99551 bytes 186524 -86973
.text : 77191 bytes 146944 -69753
.rodata : 22360 bytes 39580 -17220
Total image size: 194629 bytes (.bin may be padded larger) 283036 -88407
Total image size: 147087 bytes (.bin may be padded larger) 234780 -87693
Per-file contributions to ELF file:
Object File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>| <C>| <R>|<C>-<R>
@@ -2511,16 +2437,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 7212
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 18796 +20136 ( +13656 remain, +33792 total)
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 26008 +30544 (+118448 remain, +148992 total)
.data size: 9324 bytes 4 +9320
.bss size: 8296 bytes 48 +8248
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
.rodata size: 0 bytes 7160 -7160
Used Flash size : 186524 bytes 0 +186524
.text : 146944 bytes 0 +146944
.rodata : 39580 bytes 0 +39580
Total image size: 283036 bytes (.bin may be padded larger) 51920 +231116
Total image size: 234780 bytes (.bin may be padded larger) 25960 +208820
Symbols within the archive: libdriver.a (Not all symbols may be reported)
@@ -2604,16 +2524,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 7212
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 18796 +20136 ( +13656 remain, +33792 total)
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 26008 +30544 (+118448 remain, +148992 total)
.data size: 9324 bytes 4 +9320
.bss size: 8296 bytes 48 +8248
.text size: 37908 bytes 18796 +19112
.vectors size: 1024 bytes 0 +1024
.rodata size: 0 bytes 7160 -7160
Used Flash size : 186524 bytes 0 +186524
.text : 146944 bytes 0 +146944
.rodata : 39580 bytes 0 +39580
Total image size: 283036 bytes (.bin may be padded larger) 51920 +231116
Total image size: 234780 bytes (.bin may be padded larger) 25960 +208820
Symbols within the archive: libc.a (Not all symbols may be reported)
@@ -2675,15 +2589,10 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 17620
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38932 ( +0 remain, +0 total)
.text size: 37908 bytes 37908
.vectors size: 1024 bytes 1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 56552 ( +0 remain, +0 total)
.data size: 9324 bytes 9324
.bss size: 8296 bytes 8296
.text size: 37908 bytes 37908
.vectors size: 1024 bytes 1024
Used Flash size : 186524 bytes 186524
.text : 146944 bytes 146944
.rodata : 39580 bytes 39580
Total image size: 283036 bytes (.bin may be padded larger) 283036
Total image size: 234780 bytes (.bin may be padded larger) 234780
Symbols within the archive: libdriver.a (Not all symbols may be reported)
@@ -2754,18 +2663,13 @@ Total sizes of <CURRENT>: <REFERENCE>
Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 10604 +7016 ( -7016 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38959 -27 ( +27 remain, +0 total)
.text size: 37908 bytes 37932 -24
.vectors size: 1024 bytes 1027 -3
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 49563 +6989 ( -6989 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
.text size: 37908 bytes 37932 -24
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38956 -24 ( +24 remain, +0 total)
.text size: 37908 bytes 37929 -21
.vectors size: 1024 bytes 1027 -3
Used Flash size : 186524 bytes 99551 +86973
.text : 146944 bytes 77191 +69753
.rodata : 39580 bytes 22360 +17220
Total image size: 283036 bytes (.bin may be padded larger) 194629 +88407
Total image size: 234780 bytes (.bin may be padded larger) 147087 +87693
Symbols within the archive: libdriver.a (Not all symbols may be reported)
@@ -2874,9 +2778,6 @@ Section total: 961 4272
.iram0.text <CURRENT> <REFERENCE> <CURRENT> - <REFERENCE>
Section total: 0 0
.iram0.text_end <CURRENT> <REFERENCE> <CURRENT> - <REFERENCE>
Section total: 0 0
.iram0.vectors <CURRENT> <REFERENCE> <CURRENT> - <REFERENCE>
Section total: 0 0
@@ -2904,18 +2805,13 @@ Total sizes of <CURRENT>: <REFERENCE>
Used static DRAM: 10604 bytes ( 170132 remain, 5.9% used) 17620 -7016 ( +7016 remain, +0 total)
.data size: 8580 bytes 9324 -744
.bss size: 2024 bytes 8296 -6272
Used static IRAM: 38959 bytes ( 92113 remain, 29.7% used) 38932 +27 ( -27 remain, +0 total)
.text size: 37932 bytes 37908 +24
.vectors size: 1027 bytes 1024 +3
Used stat D/IRAM: 49563 bytes ( 262245 remain, 15.9% used) 56552 -6989 ( +6989 remain, +0 total)
.data size: 8580 bytes 9324 -744
.bss size: 2024 bytes 8296 -6272
.text size: 37932 bytes 37908 +24
Used static IRAM: 38956 bytes ( 92116 remain, 29.7% used) 38932 +24 ( -24 remain, +0 total)
.text size: 37929 bytes 37908 +21
.vectors size: 1027 bytes 1024 +3
Used Flash size : 99551 bytes 186524 -86973
.text : 77191 bytes 146944 -69753
.rodata : 22360 bytes 39580 -17220
Total image size: 194629 bytes (.bin may be padded larger) 283036 -88407
Total image size: 147087 bytes (.bin may be padded larger) 234780 -87693
Symbols within the archive: libdriver.a (Not all symbols may be reported)
@@ -3024,9 +2920,6 @@ Section total: 4272 961
.iram0.text <CURRENT> <REFERENCE> <CURRENT> - <REFERENCE>
Section total: 0 0
.iram0.text_end <CURRENT> <REFERENCE> <CURRENT> - <REFERENCE>
Section total: 0 0
.iram0.vectors <CURRENT> <REFERENCE> <CURRENT> - <REFERENCE>
Section total: 0 0
@@ -3054,18 +2947,13 @@ Total sizes of <CURRENT>: <REFERENCE>
Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 10604 +7016 ( -7016 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38959 -27 ( +27 remain, +0 total)
.text size: 37908 bytes 37932 -24
.vectors size: 1024 bytes 1027 -3
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 49563 +6989 ( -6989 remain, +0 total)
.data size: 9324 bytes 8580 +744
.bss size: 8296 bytes 2024 +6272
.text size: 37908 bytes 37932 -24
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 38956 -24 ( +24 remain, +0 total)
.text size: 37908 bytes 37929 -21
.vectors size: 1024 bytes 1027 -3
Used Flash size : 186524 bytes 99551 +86973
.text : 146944 bytes 77191 +69753
.rodata : 39580 bytes 22360 +17220
Total image size: 283036 bytes (.bin may be padded larger) 194629 +88407
Total image size: 234780 bytes (.bin may be padded larger) 147087 +87693
Symbols within the archive: libfreertos.a (Not all symbols may be reported)
@@ -3323,9 +3211,6 @@ Section total: 0 0
xt_unhandled_interrupt 26 26
Section total: 12428 12459 -31
.iram0.text_end <CURRENT> <REFERENCE> <CURRENT> - <REFERENCE>
Section total: 0 0
.iram0.vectors <CURRENT> <REFERENCE> <CURRENT> - <REFERENCE>
.DebugExceptionVector.text 6 6
.DoubleExceptionVector.text 15 15
@@ -3357,28 +3242,28 @@ Section total: 0 0
***
Running idf_size.py for esp32s2...
Total sizes:
Used stat D/IRAM: 43023 bytes ( 153585 remain, 21.9% used)
Used stat D/IRAM: 43020 bytes ( 153588 remain, 21.9% used)
.data size: 7152 bytes
.bss size: 1936 bytes
.text size: 32908 bytes
.text size: 32905 bytes
.vectors size: 1027 bytes
Used Flash size : 93019 bytes
.text : 74439 bytes
.rodata : 18580 bytes
Total image size: 134106 bytes (.bin may be padded larger)
Total image size: 134103 bytes (.bin may be padded larger)
***
Running idf_size.py for esp32s2 (target autodetected)...
Total sizes:
Used stat D/IRAM: 43023 bytes ( 153585 remain, 21.9% used)
Used stat D/IRAM: 43020 bytes ( 153588 remain, 21.9% used)
.data size: 7152 bytes
.bss size: 1936 bytes
.text size: 32908 bytes
.text size: 32905 bytes
.vectors size: 1027 bytes
Used Flash size : 93019 bytes
.text : 74439 bytes
.rodata : 18580 bytes
Total image size: 134106 bytes (.bin may be padded larger)
Total image size: 134103 bytes (.bin may be padded larger)
***
Running idf_size.py on bootloader for esp32s2...
@@ -3403,15 +3288,15 @@ Total image size: 22305 bytes (.bin may be padded larger)
***
Running idf_size.py --archives for esp32s2...
Total sizes:
Used stat D/IRAM: 43023 bytes ( 153585 remain, 21.9% used)
Used stat D/IRAM: 43020 bytes ( 153588 remain, 21.9% used)
.data size: 7152 bytes
.bss size: 1936 bytes
.text size: 32908 bytes
.text size: 32905 bytes
.vectors size: 1027 bytes
Used Flash size : 93019 bytes
.text : 74439 bytes
.rodata : 18580 bytes
Total image size: 134106 bytes (.bin may be padded larger)
Total image size: 134103 bytes (.bin may be padded larger)
Per-archive contributions to ELF file:
Archive File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
libc.a 364 4 0 0 368 54964 3645 58973
@@ -3443,15 +3328,15 @@ Per-archive contributions to ELF file:
***
Running idf_size.py --files for esp32s2...
Total sizes:
Used stat D/IRAM: 43023 bytes ( 153585 remain, 21.9% used)
Used stat D/IRAM: 43020 bytes ( 153588 remain, 21.9% used)
.data size: 7152 bytes
.bss size: 1936 bytes
.text size: 32908 bytes
.text size: 32905 bytes
.vectors size: 1027 bytes
Used Flash size : 93019 bytes
.text : 74439 bytes
.rodata : 18580 bytes
Total image size: 134106 bytes (.bin may be padded larger)
Total image size: 134103 bytes (.bin may be padded larger)
Per-file contributions to ELF file:
Object File DRAM .data & 0.bss IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata flash_total
lib_a-vfprintf.o 0 0 0 0 0 13681 700 14381
@@ -3671,15 +3556,15 @@ bootloader_efuse_esp32s2 0 0 0 0 0
***
Running idf_size.py --archive_details for esp32s2...
Total sizes:
Used stat D/IRAM: 43023 bytes ( 153585 remain, 21.9% used)
Used stat D/IRAM: 43020 bytes ( 153588 remain, 21.9% used)
.data size: 7152 bytes
.bss size: 1936 bytes
.text size: 32908 bytes
.text size: 32905 bytes
.vectors size: 1027 bytes
Used Flash size : 93019 bytes
.text : 74439 bytes
.rodata : 18580 bytes
Total image size: 134106 bytes (.bin may be padded larger)
Total image size: 134103 bytes (.bin may be padded larger)
Symbols within the archive: libdriver.a (Not all symbols may be reported)
@@ -3760,9 +3645,6 @@ Section total: 3216
Symbols from section: .iram0.text
Section total: 0
Symbols from section: .iram0.text_end
Section total: 0
Symbols from section: .iram0.vectors
Section total: 0
@@ -3794,15 +3676,15 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used) 0
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used) 0 +38932 ( +92140 remain, +131072 total)
.text size: 37908 bytes 0 +37908
.vectors size: 1024 bytes 0 +1024
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used) 43023 +13529 (+101671 remain, +115200 total)
.data size: 9324 bytes 7152 +2172
.bss size: 8296 bytes 1936 +6360
.text size: 37908 bytes 32908 +5000
.vectors size: 1024 bytes 1027 -3
Used stat D/IRAM: 0 bytes ( 0 remain, 0.0% used) 43020 -43020 (-153588 remain, -196608 total)
.data size: 0 bytes 7152 -7152
.bss size: 0 bytes 1936 -1936
.text size: 0 bytes 32905 -32905
.vectors size: 0 bytes 1027 -1027
Used Flash size : 186524 bytes 93019 +93505
.text : 146944 bytes 74439 +72505
.rodata : 39580 bytes 18580 +21000
Total image size: 283036 bytes (.bin may be padded larger) 134106 +148930
Total image size: 234780 bytes (.bin may be padded larger) 134103 +100677
***
Producing JSON output...
@@ -3822,21 +3704,21 @@ Producing JSON output...
"iram_total": 131072,
"used_iram_ratio": 0.297027587890625,
"iram_remain": 92140,
"diram_data": 9324,
"diram_bss": 8296,
"diram_text": 37908,
"diram_vectors": 1024,
"diram_data": 0,
"diram_bss": 0,
"diram_text": 0,
"diram_vectors": 0,
"diram_rodata": 0,
"diram_other": 0,
"diram_total": 311808,
"used_diram": 56552,
"used_diram_ratio": 0.18136802134646962,
"diram_remain": 255256,
"diram_total": 0,
"used_diram": 0,
"used_diram_ratio": 0,
"diram_remain": 0,
"flash_code": 146944,
"flash_rodata": 39580,
"flash_other": 0,
"used_flash_non_ram": 186524,
"total_size": 283036
"total_size": 234780
}
{
"liblwip.a": {
@@ -5598,21 +5480,21 @@ Producing JSON output...
"iram_total": 131072,
"used_iram_ratio": 0.297027587890625,
"iram_remain": 92140,
"diram_data": 9324,
"diram_bss": 8296,
"diram_text": 37908,
"diram_vectors": 1024,
"diram_data": 0,
"diram_bss": 0,
"diram_text": 0,
"diram_vectors": 0,
"diram_rodata": 0,
"diram_other": 0,
"diram_total": 311808,
"used_diram": 56552,
"used_diram_ratio": 0.18136802134646962,
"diram_remain": 255256,
"diram_total": 0,
"used_diram": 0,
"used_diram_ratio": 0,
"diram_remain": 0,
"flash_code": 146944,
"flash_rodata": 39580,
"flash_other": 0,
"used_flash_non_ram": 186524,
"total_size": 283036
"total_size": 234780
},
"reference": {
"dram_data": 8580,
@@ -5624,27 +5506,27 @@ Producing JSON output...
"used_dram_ratio": 0.05867121104815864,
"dram_remain": 170132,
"iram_vectors": 1027,
"iram_text": 37932,
"iram_text": 37929,
"iram_other": 0,
"used_iram": 38959,
"used_iram": 38956,
"iram_total": 131072,
"used_iram_ratio": 0.29723358154296875,
"iram_remain": 92113,
"diram_data": 8580,
"diram_bss": 2024,
"diram_text": 37932,
"diram_vectors": 1027,
"used_iram_ratio": 0.297210693359375,
"iram_remain": 92116,
"diram_data": 0,
"diram_bss": 0,
"diram_text": 0,
"diram_vectors": 0,
"diram_rodata": 0,
"diram_other": 0,
"diram_total": 311808,
"used_diram": 49563,
"used_diram_ratio": 0.1589535868226601,
"diram_remain": 262245,
"diram_total": 0,
"used_diram": 0,
"used_diram_ratio": 0,
"diram_remain": 0,
"flash_code": 77191,
"flash_rodata": 22360,
"flash_other": 0,
"used_flash_non_ram": 99551,
"total_size": 194629
"total_size": 147087
},
"diff": {
"dram_data": 744,
@@ -5656,27 +5538,27 @@ Producing JSON output...
"used_dram_ratio": 0.03881905099150142,
"dram_remain": -7016,
"iram_vectors": -3,
"iram_text": -24,
"iram_text": -21,
"iram_other": 0,
"used_iram": -27,
"used_iram": -24,
"iram_total": 0,
"used_iram_ratio": -0.00020599365234375,
"iram_remain": 27,
"diram_data": 744,
"diram_bss": 6272,
"diram_text": -24,
"diram_vectors": -3,
"used_iram_ratio": -0.00018310546875,
"iram_remain": 24,
"diram_data": 0,
"diram_bss": 0,
"diram_text": 0,
"diram_vectors": 0,
"diram_rodata": 0,
"diram_other": 0,
"diram_total": 0,
"used_diram": 6989,
"used_diram_ratio": 0.022414434523809534,
"diram_remain": -6989,
"used_diram": 0,
"used_diram_ratio": 0,
"diram_remain": 0,
"flash_code": 69753,
"flash_rodata": 17220,
"flash_other": 0,
"used_flash_non_ram": 86973,
"total_size": 88407
"total_size": 87693
}
}
{
@@ -11581,7 +11463,6 @@ Producing JSON output...
"uart_get_selectlock": 12
},
".iram0.text": {},
".iram0.text_end": {},
".iram0.vectors": {},
".noinit": {},
".rtc.bss": {},
@@ -11689,7 +11570,6 @@ Producing JSON output...
"uart_wait_tx_done": -425
},
".iram0.text": {},
".iram0.text_end": {},
".iram0.vectors": {},
".noinit": {},
".rtc.bss": {},
@@ -11719,19 +11599,19 @@ Producing JSON output for esp32s2...
"iram_remain": 0,
"diram_data": 7152,
"diram_bss": 1936,
"diram_text": 32908,
"diram_text": 32905,
"diram_vectors": 1027,
"diram_rodata": 0,
"diram_other": 0,
"diram_total": 196608,
"used_diram": 43023,
"used_diram_ratio": 0.2188262939453125,
"diram_remain": 153585,
"used_diram": 43020,
"used_diram_ratio": 0.21881103515625,
"diram_remain": 153588,
"flash_code": 74439,
"flash_rodata": 18580,
"flash_other": 0,
"used_flash_non_ram": 93019,
"total_size": 134106
"total_size": 134103
}
{
"libc.a": {
@@ -13077,7 +12957,6 @@ Producing JSON output for esp32s2...
"uart_get_selectlock": 12
},
".iram0.text": {},
".iram0.text_end": {},
".iram0.vectors": {},
".noinit": {},
".rtc.bss": {},

View File

@@ -14,19 +14,19 @@
"iram_total": 131072,
"used_iram_ratio": 0.297027587890625,
"iram_remain": 92140,
"diram_data": 9324,
"diram_bss": 8296,
"diram_text": 37908,
"diram_vectors": 1024,
"diram_data": 0,
"diram_bss": 0,
"diram_text": 0,
"diram_vectors": 0,
"diram_rodata": 0,
"diram_other": 0,
"diram_total": 311808,
"used_diram": 56552,
"used_diram_ratio": 0.18136802134646962,
"diram_remain": 255256,
"diram_total": 0,
"used_diram": 0,
"used_diram_ratio": 0,
"diram_remain": 0,
"flash_code": 146944,
"flash_rodata": 39580,
"flash_other": 0,
"used_flash_non_ram": 186524,
"total_size": 283036
"total_size": 234780
}

View File

@@ -5,12 +5,7 @@ Used static DRAM: 17620 bytes ( 163116 remain, 9.7% used)
Used static IRAM: 38932 bytes ( 92140 remain, 29.7% used)
.text size: 37908 bytes
.vectors size: 1024 bytes
Used stat D/IRAM: 56552 bytes ( 255256 remain, 18.1% used)
.data size: 9324 bytes
.bss size: 8296 bytes
.text size: 37908 bytes
.vectors size: 1024 bytes
Used Flash size : 186524 bytes
.text : 146944 bytes
.rodata : 39580 bytes
Total image size: 283036 bytes (.bin may be padded larger)
Total image size: 234780 bytes (.bin may be padded larger)

View File

@@ -0,0 +1,52 @@
#!/usr/bin/env python
#
# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
#
import argparse
import json
import os
import re
from typing import Dict
IDF_PATH = os.environ['IDF_PATH']
MAX_SIZE_DIFF = 50
def mem_test(size_json, esptool_output): # type: (dict, list) -> None
seg_len = {} # type: Dict[str, int]
for i in esptool_output:
tmp = i.split(' ')
if tmp[0] == 'Segment':
# tmp look like ['Segment', '2:', 'len', '0x02780', 'load', '0x3fc90610', 'file_offs', '0x00007ab0', '[BYTE_ACCESSIBLE,MEM_INTERNAL,DRAM]']
# tmp[3] contains the size of the segment and tmp[8] contains the name of the memory segment
esptool_mem = {'mem_type':tmp[8], 'size':tmp[3]}
seg = re.sub(r'MEM_INTERNAL|,|BYTE_ACCESSIBLE|\n|\[|\]', '', esptool_mem['mem_type'])
# If there are two IRAMs in esptool output it will compute these two IRAM lengths in a seg_len['IRAM']
seg_len[seg] = int(esptool_mem['size'], 16) if seg not in seg_len else seg_len[seg] + int(esptool_mem['size'], 16)
# including flash_other to DROM because flash_other contain .flash.appdesc that includes in DROM that produced by esptool
size_from_map = [('IROM', size_json['flash_code']), ('IRAM', size_json['iram_text'] + size_json['iram_vectors'] + size_json['diram_text']
+ size_json['diram_vectors']), ('DROM', size_json['flash_rodata'] + size_json['flash_other']), ('DRAM', size_json
['dram_data'] + size_json['diram_data'])]
for mem_type, size in size_from_map:
if abs(size - seg_len[mem_type]) > MAX_SIZE_DIFF:
raise RuntimeError(mem_type + " segment in idf_size isn't correct regarding esptool")
print('Test complete without errors')
def main(): # type: () -> None
parser = argparse.ArgumentParser(description='mem_test.py - a tool to test accuracy of the sizes of the memory segments regarding idf.py size by esptool')
parser.add_argument(
'size_json', help='JSON file with the output of the idf.py size',
type=argparse.FileType('r'))
parser.add_argument(
'esptool_output', help='File with the output of the esptool',
type=argparse.FileType('r'))
args = parser.parse_args()
mem_test(json.loads(args.size_json.read()), args.esptool_output.read().split('\n'))
if __name__ == '__main__':
main()

View File

@@ -77,10 +77,7 @@
"(^\\.flash\\.(rodata|text|appdesc|rodata_noload)$)": {
"$ref": "#/$defs/archive_details"
},
"(^\\.flash_rodata_dummy$)": {
"$ref": "#/$defs/archive_details"
},
"(^\\.iram0\\.(text|vectors|text_end|bss|data)$)": {
"(^\\.iram0\\.(text|vectors|bss|data)$)": {
"$ref": "#/$defs/archive_details"
},
"(^\\.rtc\\.(bss|data|text)$)": {

View File

@@ -1,7 +1,22 @@
#!/usr/bin/env bash
{ coverage debug sys \
&& coverage erase &> output \
memory_test () {
pushd $IDF_PATH/examples/get-started/hello_world \
&& echo -e "\n***\nBuilding project for $1..." &>> $IDF_PATH/tools/test_idf_size/output \
&& idf.py set-target $1 \
&& idf.py build \
&& echo -e "\n***\nRunning mem_test.py for $1..." &>> $IDF_PATH/tools/test_idf_size/output \
&& python -m coverage run -a $IDF_PATH/tools/idf_size.py --json build/hello-world.map > size_output.json \
&& python $IDF_PATH/components/esptool_py/esptool/esptool.py --chip $1 image_info build/hello-world.bin > esptool_output \
&& python -m coverage run -a $IDF_PATH/tools/test_idf_size/mem_test.py size_output.json esptool_output &>> $IDF_PATH/tools/test_idf_size/output \
&& popd
}
{ python -m coverage debug sys \
&& python -m coverage erase &> output \
&& memory_test esp32 \
&& memory_test esp32s2 \
&& echo -e "\n***\nRunning idf_size.py..." &>> output \
&& coverage run -a $IDF_PATH/tools/idf_size.py app.map &>> output \
&& echo -e "\n***\nRunning idf_size.py on bootloader..." &>> output \