diff --git a/tools/idf_size.py b/tools/idf_size.py index 091732fbc3..c928ce9d74 100755 --- a/tools/idf_size.py +++ b/tools/idf_size.py @@ -1103,19 +1103,28 @@ def get_archive_symbols(sections, archive, as_json=False, sections_diff=None): def _get_item_pairs(name, section): # type: (str, collections.OrderedDict) -> collections.OrderedDict return collections.OrderedDict([(key.replace(name + '.', ''), val) for key, val in iteritems(section)]) + def _get_max_len(symbols_dict): # type: (Dict) -> Tuple[int, int] + names_max_len = 0 + numbers_max_len = 0 + for t, s in iteritems(symbols_dict): + numbers_max_len = max([numbers_max_len] + [len(str(x)) for _, x in iteritems(s)]) + names_max_len = max([names_max_len] + [len(x) for x in _get_item_pairs(t, s)]) + + return names_max_len, numbers_max_len + def _get_output(section_symbols): # type: (Dict) -> str output = '' + names_max_len, numbers_max_len = _get_max_len(section_symbols) for t, s in iteritems(section_symbols): output += '{}Symbols from section: {}{}'.format(os.linesep, t, os.linesep) item_pairs = _get_item_pairs(t, s) - output += ' '.join(['{}({})'.format(key, val) for key, val in iteritems(item_pairs)]) + for key, val in iteritems(item_pairs): + output += ' '.join([('\t{:<%d} : {:>%d}\n' % (names_max_len,numbers_max_len)).format(key, val)]) section_total = sum([val for _, val in iteritems(item_pairs)]) - output += '{}Section total: {}{}'.format(os.linesep if section_total > 0 else '', - section_total, - os.linesep) + output += 'Section total: {}{}'.format(section_total, os.linesep) return output - output = 'Symbols within the archive: {} (Not all symbols may be reported){}'.format(archive, os.linesep) + output = '{}Symbols within the archive: {} (Not all symbols may be reported){}'.format(os.linesep, archive, os.linesep) if diff_en: def _generate_line_tuple(curr, ref, name): diff --git a/tools/test_idf_size/expected_output b/tools/test_idf_size/expected_output index a85a9c255c..c6955ceb63 100644 --- a/tools/test_idf_size/expected_output +++ b/tools/test_idf_size/expected_output @@ -413,22 +413,44 @@ Used Flash size : 186524 bytes .text : 146944 bytes .rodata : 39580 bytes Total image size: 283036 bytes (.bin may be padded larger) + Symbols within the archive: libdriver.a (Not all symbols may be reported) Symbols from section: .dram0.bss -p_uart_obj(12) s_rtc_isr_handle(4) s_rtc_isr_handler_list(4) + p_uart_obj : 12 + s_rtc_isr_handle : 4 + s_rtc_isr_handler_list : 4 Section total: 20 Symbols from section: .dram0.data -timer_spinlock(16) periph_spinlock(8) s_rtc_isr_handler_list_lock(8) uart_selectlock(8) + timer_spinlock : 16 + periph_spinlock : 8 + s_rtc_isr_handler_list_lock : 8 + uart_selectlock : 8 Section total: 40 Symbols from section: .flash.rodata -str1.4(249) get_clk_en_mask(128) get_rst_en_mask(128) __FUNCTION__$5441(24) TG(8) + str1.4 : 249 + get_clk_en_mask : 128 + get_rst_en_mask : 128 + __FUNCTION__$5441 : 24 + TG : 8 Section total: 537 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) + 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: .iram0.text @@ -2499,6 +2521,7 @@ Used Flash size : 186524 bytes 0 .text : 146944 bytes 0 +146944 .rodata : 39580 bytes 0 +39580 Total image size: 283036 bytes (.bin may be padded larger) 51920 +231116 + Symbols within the archive: libdriver.a (Not all symbols may be reported) .dram0.bss - @@ -2591,6 +2614,7 @@ Used Flash size : 186524 bytes 0 .text : 146944 bytes 0 +146944 .rodata : 39580 bytes 0 +39580 Total image size: 283036 bytes (.bin may be padded larger) 51920 +231116 + Symbols within the archive: libc.a (Not all symbols may be reported) .dram0.bss - @@ -2660,6 +2684,7 @@ 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 + Symbols within the archive: libdriver.a (Not all symbols may be reported) .dram0.bss - @@ -2741,6 +2766,7 @@ Used Flash size : 186524 bytes 99551 .text : 146944 bytes 77191 +69753 .rodata : 39580 bytes 22360 +17220 Total image size: 283036 bytes (.bin may be padded larger) 194629 +88407 + Symbols within the archive: libdriver.a (Not all symbols may be reported) .dram0.bss - @@ -2890,6 +2916,7 @@ Used Flash size : 99551 bytes 186524 .text : 77191 bytes 146944 -69753 .rodata : 22360 bytes 39580 -17220 Total image size: 194629 bytes (.bin may be padded larger) 283036 -88407 + Symbols within the archive: libdriver.a (Not all symbols may be reported) .dram0.bss - @@ -3039,6 +3066,7 @@ Used Flash size : 186524 bytes 99551 .text : 146944 bytes 77191 +69753 .rodata : 39580 bytes 22360 +17220 Total image size: 283036 bytes (.bin may be padded larger) 194629 +88407 + Symbols within the archive: libfreertos.a (Not all symbols may be reported) .dram0.bss - @@ -3652,22 +3680,81 @@ Used Flash size : 93019 bytes .text : 74439 bytes .rodata : 18580 bytes Total image size: 134106 bytes (.bin may be padded larger) + Symbols within the archive: libdriver.a (Not all symbols may be reported) Symbols from section: .dram0.bss -p_timer_obj(16) p_uart_obj(8) s_rtc_isr_handle(4) s_rtc_isr_handler_list(4) + p_timer_obj : 16 + p_uart_obj : 8 + s_rtc_isr_handle : 4 + s_rtc_isr_handler_list : 4 Section total: 32 Symbols from section: .dram0.data -uart_context(32) timer_spinlock(16) periph_spinlock(8) rtc_spinlock(8) s_rtc_isr_handler_list_lock(8) uart_selectlock(8) + uart_context : 32 + timer_spinlock : 16 + periph_spinlock : 8 + rtc_spinlock : 8 + s_rtc_isr_handler_list_lock : 8 + uart_selectlock : 8 Section total: 80 Symbols from section: .flash.rodata -timer_get_counter_value.str1.4(146) get_clk_en_mask(136) get_rst_en_mask(136) uart_pattern_enqueue.str1.4(88) uart_flush_input.str1.4(45) uart_set_word_length.str1.4(31) __FUNCTION__$7196(27) __FUNCTION__$5699(24) __FUNCTION__$6971(23) __FUNCTION__$6966(22) __FUNCTION__$6896(21) __FUNCTION__$6901(21) __FUNCTION__$6906(19) __FUNCTION__$6911(19) __FUNCTION__$6926(18) __FUNCTION__$6932(18) __FUNCTION__$7131(18) uart_pattern_pop_pos.str1.4(18) __FUNCTION__$7202(17) __FUNCTION__$6916(16) __FUNCTION__$6921(16) uart_set_stop_bits.str1.4(15) + timer_get_counter_value.str1.4 : 146 + get_clk_en_mask : 136 + get_rst_en_mask : 136 + uart_pattern_enqueue.str1.4 : 88 + uart_flush_input.str1.4 : 45 + uart_set_word_length.str1.4 : 31 + __FUNCTION__$7196 : 27 + __FUNCTION__$5699 : 24 + __FUNCTION__$6971 : 23 + __FUNCTION__$6966 : 22 + __FUNCTION__$6896 : 21 + __FUNCTION__$6901 : 21 + __FUNCTION__$6906 : 19 + __FUNCTION__$6911 : 19 + __FUNCTION__$6926 : 18 + __FUNCTION__$6932 : 18 + __FUNCTION__$7131 : 18 + uart_pattern_pop_pos.str1.4 : 18 + __FUNCTION__$7202 : 17 + __FUNCTION__$6916 : 16 + __FUNCTION__$6921 : 16 + uart_set_stop_bits.str1.4 : 15 Section total: 894 Symbols from section: .flash.text -uart_flush_input(453) uart_wait_tx_done(417) get_clk_en_mask(267) get_rst_en_mask(198) timer_group_intr_enable(184) uart_set_word_length(144) uart_set_stop_bits(128) periph_module_enable(112) uart_get_bufferedlen(109) uart_enable_intr_mask(98) uart_disable_intr_mask(96) uart_set_baudrate(96) rtc_isr(90) uart_get_baudrate(82) uart_set_parity(82) rtc_isr_ensure_installed(79) uart_pattern_queue_update(74) uart_get_parity(69) uart_get_stop_bits(69) uart_get_word_length(69) rtc_isr_register(62) rtc_gpio_force_hold_dis_all(53) is_wifi_clk_peripheral(38) uart_is_driver_installed(30) get_rst_en_reg(25) uart_set_select_notif_callback(23) get_clk_en_reg(21) uart_disable_rx_intr(18) uart_enable_rx_intr(18) uart_get_selectlock(12) + uart_flush_input : 453 + uart_wait_tx_done : 417 + get_clk_en_mask : 267 + get_rst_en_mask : 198 + timer_group_intr_enable : 184 + uart_set_word_length : 144 + uart_set_stop_bits : 128 + periph_module_enable : 112 + uart_get_bufferedlen : 109 + uart_enable_intr_mask : 98 + uart_disable_intr_mask : 96 + uart_set_baudrate : 96 + rtc_isr : 90 + uart_get_baudrate : 82 + uart_set_parity : 82 + rtc_isr_ensure_installed : 79 + uart_pattern_queue_update : 74 + uart_get_parity : 69 + uart_get_stop_bits : 69 + uart_get_word_length : 69 + rtc_isr_register : 62 + rtc_gpio_force_hold_dis_all : 53 + is_wifi_clk_peripheral : 38 + uart_is_driver_installed : 30 + get_rst_en_reg : 25 + uart_set_select_notif_callback : 23 + get_clk_en_reg : 21 + uart_disable_rx_intr : 18 + uart_enable_rx_intr : 18 + uart_get_selectlock : 12 Section total: 3216 Symbols from section: .iram0.text