diff --git a/tools/idf_size.py b/tools/idf_size.py index 2372379585..4407d548a5 100755 --- a/tools/idf_size.py +++ b/tools/idf_size.py @@ -1160,19 +1160,29 @@ 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] + # the lists have 0 in them because max() doesn't work with empty lists + 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 53000872ef..645cbab200 100644 --- a/tools/test_idf_size/expected_output +++ b/tools/test_idf_size/expected_output @@ -434,22 +434,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 @@ -2520,6 +2542,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 - @@ -2612,6 +2635,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 - @@ -2681,6 +2705,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 - @@ -2762,6 +2787,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 - @@ -2911,6 +2937,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 - @@ -3060,6 +3087,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 - @@ -3686,22 +3714,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 @@ -4006,28 +4093,97 @@ Used Flash size : 248080 bytes .text : 90400 bytes .rodata : 26352 bytes Total image size: 293064 bytes (.bin may be padded larger) + Symbols within the archive: libdriver.a (Not all symbols may be reported) Symbols from section: .dram0.bss -ref_counts(27) .p_uart_obj(8) + ref_counts : 27 + .p_uart_obj : 8 Section total: 35 Symbols from section: .dram0.data -uart_context(32) .uart_selectlock(8) ..g_spi_lock_main_flash_dev(4) + uart_context : 32 + .uart_selectlock : 8 + ..g_spi_lock_main_flash_dev : 4 Section total: 44 Symbols from section: .flash.appdesc Section total: 0 Symbols from section: .flash.rodata -gpio_set_pull_mode.str1.4(93) periph_module_enable.str1.4(64) gpio_input_enable.str1.4(62) uart_disable_intr_mask_and_return_prev.str1.4(54) uart_pattern_pop_pos.str1.4(49) uart_set_stop_bits.str1.4(46) uart_set_word_length.str1.4(46) uart_flush_input.str1.4(45) __FUNCTION__.7467(39) __FUNCTION__.7459(27) gpio_sleep_output_enable.str1.4(27) __FUNCTION__.6231(26) __FUNCTION__.6223(25) __FUNCTION__.6235(25) __FUNCTION__.6240(25) __FUNCTION__.6246(25) __FUNCTION__.6219(24) __FUNCTION__.6227(24) __FUNCTION__.6215(23) __FUNCTION__.6211(22) __FUNCTION__.7222(22) __FUNCTION__.6207(21) __FUNCTION__.7153(21) __FUNCTION__.7158(21) __func__.4238(21) __FUNCTION__.6261(19) __FUNCTION__.7163(19) __FUNCTION__.7168(19) __FUNCTION__.6257(18) __FUNCTION__.7183(18) __FUNCTION__.7188(18) __FUNCTION__.7394(18) __FUNCTION__.7471(17) __FUNCTION__.7173(16) __FUNCTION__.7178(16) + gpio_set_pull_mode.str1.4 : 93 + periph_module_enable.str1.4 : 64 + gpio_input_enable.str1.4 : 62 + uart_disable_intr_mask_and_return_prev.str1.4 : 54 + uart_pattern_pop_pos.str1.4 : 49 + uart_set_stop_bits.str1.4 : 46 + uart_set_word_length.str1.4 : 46 + uart_flush_input.str1.4 : 45 + __FUNCTION__.7467 : 39 + __FUNCTION__.7459 : 27 + gpio_sleep_output_enable.str1.4 : 27 + __FUNCTION__.6231 : 26 + __FUNCTION__.6223 : 25 + __FUNCTION__.6235 : 25 + __FUNCTION__.6240 : 25 + __FUNCTION__.6246 : 25 + __FUNCTION__.6219 : 24 + __FUNCTION__.6227 : 24 + __FUNCTION__.6215 : 23 + __FUNCTION__.6211 : 22 + __FUNCTION__.7222 : 22 + __FUNCTION__.6207 : 21 + __FUNCTION__.7153 : 21 + __FUNCTION__.7158 : 21 + __func__.4238 : 21 + __FUNCTION__.6261 : 19 + __FUNCTION__.7163 : 19 + __FUNCTION__.7168 : 19 + __FUNCTION__.6257 : 18 + __FUNCTION__.7183 : 18 + __FUNCTION__.7188 : 18 + __FUNCTION__.7394 : 18 + __FUNCTION__.7471 : 17 + __FUNCTION__.7173 : 16 + __FUNCTION__.7178 : 16 Section total: 1055 Symbols from section: .flash.rodata_noload Section total: 0 Symbols from section: .flash.text -periph_module_enable(736) uart_flush_input(580) uart_wait_tx_done(484) gpio_sleep_set_pull_mode(318) uart_set_stop_bits(178) uart_set_word_length(178) gpio_sleep_set_direction(156) uart_get_bufferedlen(152) gpio_sleep_pulldown_en(148) gpio_sleep_pullup_en(148) gpio_sleep_sel_en(148) gpio_sleep_pulldown_dis(146) gpio_sleep_pullup_dis(146) gpio_sleep_sel_dis(146) uart_disable_intr_mask_and_return_prev(138) gpio_sleep_input_enable(126) gpio_sleep_output_enable(126) gpio_sleep_input_disable(124) gpio_sleep_output_disable(124) uart_enable_intr_mask(122) uart_get_baudrate(116) uart_set_baudrate(116) uart_set_parity(116) uart_get_parity(86) uart_get_stop_bits(86) uart_get_word_length(86) uart_pattern_queue_update(80) periph_ll_get_clk_en_reg(50) periph_ll_get_rst_en_reg(50) uart_is_driver_installed(34) uart_set_select_notif_callback(30) uart_get_selectlock(6) + periph_module_enable : 736 + uart_flush_input : 580 + uart_wait_tx_done : 484 + gpio_sleep_set_pull_mode : 318 + uart_set_stop_bits : 178 + uart_set_word_length : 178 + gpio_sleep_set_direction : 156 + uart_get_bufferedlen : 152 + gpio_sleep_pulldown_en : 148 + gpio_sleep_pullup_en : 148 + gpio_sleep_sel_en : 148 + gpio_sleep_pulldown_dis : 146 + gpio_sleep_pullup_dis : 146 + gpio_sleep_sel_dis : 146 + uart_disable_intr_mask_and_return_prev : 138 + gpio_sleep_input_enable : 126 + gpio_sleep_output_enable : 126 + gpio_sleep_input_disable : 124 + gpio_sleep_output_disable : 124 + uart_enable_intr_mask : 122 + uart_get_baudrate : 116 + uart_set_baudrate : 116 + uart_set_parity : 116 + uart_get_parity : 86 + uart_get_stop_bits : 86 + uart_get_word_length : 86 + uart_pattern_queue_update : 80 + periph_ll_get_clk_en_reg : 50 + periph_ll_get_rst_en_reg : 50 + uart_is_driver_installed : 34 + uart_set_select_notif_callback : 30 + uart_get_selectlock : 6 Section total: 5280 Symbols from section: .flash_rodata_dummy @@ -4430,28 +4586,71 @@ Used Flash size : 245923 bytes .text : 87463 bytes .rodata : 27132 bytes Total image size: 301962 bytes (.bin may be padded larger) + Symbols within the archive: libdriver.a (Not all symbols may be reported) Symbols from section: .dram0.bss -ref_counts(37) p_uart_obj(12) + ref_counts : 37 + p_uart_obj : 12 Section total: 49 Symbols from section: .dram0.data -uart_context(48) periph_spinlock(8) uart_selectlock(8) + uart_context : 48 + periph_spinlock : 8 + uart_selectlock : 8 Section total: 64 Symbols from section: .flash.appdesc Section total: 0 Symbols from section: .flash.rodata -periph_module_enable.str1.4(64) uart_disable_intr_mask_and_return_prev.str1.4(54) uart_pattern_pop_pos.str1.4(49) uart_set_stop_bits.str1.4(46) uart_set_word_length.str1.4(46) uart_flush_input.str1.4(45) __FUNCTION__$8051(39) __FUNCTION__$8043(27) __FUNCTION__$7806(22) __FUNCTION__$7737(21) __FUNCTION__$7742(21) __func__$4997(21) __FUNCTION__$7747(19) __FUNCTION__$7752(19) __FUNCTION__$7767(18) __FUNCTION__$7772(18) __FUNCTION__$7978(18) __FUNCTION__$8055(17) __FUNCTION__$7757(16) __FUNCTION__$7762(16) g_spi_lock_main_flash_dev(4) + periph_module_enable.str1.4 : 64 + uart_disable_intr_mask_and_return_prev.str1.4 : 54 + uart_pattern_pop_pos.str1.4 : 49 + uart_set_stop_bits.str1.4 : 46 + uart_set_word_length.str1.4 : 46 + uart_flush_input.str1.4 : 45 + __FUNCTION__$8051 : 39 + __FUNCTION__$8043 : 27 + __FUNCTION__$7806 : 22 + __FUNCTION__$7737 : 21 + __FUNCTION__$7742 : 21 + __func__$4997 : 21 + __FUNCTION__$7747 : 19 + __FUNCTION__$7752 : 19 + __FUNCTION__$7767 : 18 + __FUNCTION__$7772 : 18 + __FUNCTION__$7978 : 18 + __FUNCTION__$8055 : 17 + __FUNCTION__$7757 : 16 + __FUNCTION__$7762 : 16 + g_spi_lock_main_flash_dev : 4 Section total: 600 Symbols from section: .flash.rodata_noload Section total: 0 Symbols from section: .flash.text -periph_module_enable(1131) uart_flush_input(509) uart_wait_tx_done(393) uart_set_stop_bits(130) uart_set_word_length(130) periph_ll_get_rst_en_reg(125) uart_disable_intr_mask_and_return_prev(122) periph_ll_get_clk_en_reg(121) uart_get_bufferedlen(108) uart_enable_intr_mask(100) uart_get_baudrate(88) uart_set_parity(88) uart_set_baudrate(84) uart_pattern_queue_update(74) uart_get_parity(68) uart_get_stop_bits(68) uart_get_word_length(64) uart_is_driver_installed(30) uart_set_select_notif_callback(23) uart_get_selectlock(12) + periph_module_enable : 1131 + uart_flush_input : 509 + uart_wait_tx_done : 393 + uart_set_stop_bits : 130 + uart_set_word_length : 130 + periph_ll_get_rst_en_reg : 125 + uart_disable_intr_mask_and_return_prev : 122 + periph_ll_get_clk_en_reg : 121 + uart_get_bufferedlen : 108 + uart_enable_intr_mask : 100 + uart_get_baudrate : 88 + uart_set_parity : 88 + uart_set_baudrate : 84 + uart_pattern_queue_update : 74 + uart_get_parity : 68 + uart_get_stop_bits : 68 + uart_get_word_length : 64 + uart_is_driver_installed : 30 + uart_set_select_notif_callback : 23 + uart_get_selectlock : 12 Section total: 3468 Symbols from section: .flash_rodata_dummy