Xuan-Son Nguyen
840e8c38f1
feat: add script for listing objects in flash (#880)
## Summary
Adding a simple script to list objects and its size. I know `pio`
already had the "analyze" function but it never works in my case.
Ref discussion:
https://github.com/crosspoint-reader/crosspoint-reader/discussions/862
To use it:
```sh
scripts/script_profile_mem.sh
```
Example:
```
============================================
Top 10 largest symbols in section: .dram0.bss
Total section size: 85976 bytes (83.96 KB)
============================================
0000bb98 ( 46.90 KB) display
00000ed8 ( 3.71 KB) g_cnxMgr
00000ad8 ( 2.71 KB) ftm_initiator
00000830 ( 2.05 KB) xIsrStack
000005b4 ( 1.43 KB) packet.8427
000004e0 ( 1.22 KB) _ZN12_GLOBAL__N_17ctype_wE
000004a0 ( 1.16 KB) dns_table
0000049c ( 1.15 KB) s_wifi_nvs
00000464 ( 1.10 KB) s_coredump_stack
0000034c ( 0.82 KB) gWpaSm
============================================
Top 10 largest symbols in section: .dram0.data
Total section size: 13037 bytes (12.73 KB)
============================================
000003c0 ( 0.94 KB) TxRxCxt
00000328 ( 0.79 KB) phy_param
000001d0 ( 0.45 KB) g_wifi_osi_funcs
0000011b ( 0.28 KB) _ZN18CrossPointSettings8instanceE
000000e6 ( 0.22 KB) country_info_24ghz
000000dc ( 0.21 KB) g_eb_list_desc
000000c0 ( 0.19 KB) s_fd_table
000000b8 ( 0.18 KB) g_timer_info
000000a8 ( 0.16 KB) rc11NSchedTbl
000000a0 ( 0.16 KB) g_rmt_objects
============================================
Top 200 largest symbols in section: .flash.rodata
Total section size: 4564375 bytes (4457.40 KB)
============================================
000325b7 ( 201.43 KB) _ZL12de_trie_data
0001cbd8 ( 114.96 KB) _ZL29notosans_18_bolditalicBitmaps
0001ca38 ( 114.55 KB) _ZL29bookerly_18_bolditalicBitmaps
0001bd3f ( 111.31 KB) _ZL23bookerly_18_boldBitmaps
0001af54 ( 107.83 KB) _ZL23notosans_18_boldBitmaps
0001abcc ( 106.95 KB) _ZL25bookerly_18_italicBitmaps
0001a341 ( 104.81 KB) _ZL25notosans_18_italicBitmaps
0001a0a5 ( 104.16 KB) _ZL26bookerly_18_regularBitmaps
0001890c ( 98.26 KB) _ZL26notosans_18_regularBitmaps
000188cc ( 98.20 KB) _ZL33opendyslexic_14_bolditalicBitmaps
000170ca ( 92.20 KB) _ZL29notosans_16_bolditalicBitmaps
00015e7f ( 87.62 KB) _ZL29bookerly_16_bolditalicBitmaps
00015acb ( 86.70 KB) _ZL23notosans_16_boldBitmaps
00015140 ( 84.31 KB) _ZL23bookerly_16_boldBitmaps
00014f0c ( 83.76 KB) _ZL25notosans_16_italicBitmaps
00014d54 ( 83.33 KB) _ZL29opendyslexic_14_italicBitmaps
00014766 ( 81.85 KB) _ZL27opendyslexic_14_boldBitmaps
0001467f ( 81.62 KB) _ZL25bookerly_16_italicBitmaps
00013c46 ( 79.07 KB) _ZL26bookerly_16_regularBitmaps
00013934 ( 78.30 KB) _ZL26notosans_16_regularBitmaps
00012572 ( 73.36 KB) _ZL33opendyslexic_12_bolditalicBitmaps
00011cee ( 71.23 KB) _ZL29notosans_14_bolditalicBitmaps
00011547 ( 69.32 KB) _ZL30opendyslexic_14_regularBitmaps
0001153c ( 69.31 KB) _ZL29bookerly_14_bolditalicBitmaps
00010c2e ( 67.04 KB) _ZL23notosans_14_boldBitmaps
0001096e ( 66.36 KB) _ZL23bookerly_14_boldBitmaps
000103d2 ( 64.96 KB) _ZL25notosans_14_italicBitmaps
000100d5 ( 64.21 KB) _ZL25bookerly_14_italicBitmaps
0000f83e ( 62.06 KB) _ZL26bookerly_14_regularBitmaps
0000f7fc ( 62.00 KB) _ZL29opendyslexic_12_italicBitmaps
0000f42b ( 61.04 KB) _ZL26notosans_14_regularBitmaps
0000f229 ( 60.54 KB) _ZL27opendyslexic_12_boldBitmaps
0000d301 ( 52.75 KB) _ZL29notosans_12_bolditalicBitmaps
0000d22f ( 52.55 KB) _ZL30opendyslexic_12_regularBitmaps
0000cff4 ( 51.99 KB) _ZL29bookerly_12_bolditalicBitmaps
0000cd12 ( 51.27 KB) _ZL33opendyslexic_10_bolditalicBitmaps
0000cad2 ( 50.71 KB) _ZL23bookerly_12_boldBitmaps
0000c60a ( 49.51 KB) _ZL23notosans_12_boldBitmaps
0000c147 ( 48.32 KB) _ZL25bookerly_12_italicBitmaps
0000c120 ( 48.28 KB) _ZL25notosans_12_italicBitmaps
0000ba7e ( 46.62 KB) _ZL26bookerly_12_regularBitmaps
0000b454 ( 45.08 KB) _ZL26notosans_12_regularBitmaps
0000b1e0 ( 44.47 KB) _ZL29opendyslexic_10_italicBitmaps
0000a939 ( 42.31 KB) _ZL27opendyslexic_10_boldBitmaps
0000a0dd ( 40.22 KB) _ZL13FilesPageHtml
0000949d ( 37.15 KB) _ZL30opendyslexic_10_regularBitmaps
00008415 ( 33.02 KB) _ZL32opendyslexic_8_bolditalicBitmaps
00008240 ( 32.56 KB) _ZL15ru_ru_trie_data
00007587 ( 29.38 KB) _ZL28opendyslexic_8_italicBitmaps
00006f4d ( 27.83 KB) _ZL26opendyslexic_8_boldBitmaps
00006943 ( 26.32 KB) _ZL15en_us_trie_data
00006196 ( 24.40 KB) _ZL29opendyslexic_8_regularBitmaps
00004990 ( 18.39 KB) _ZL21ubuntu_12_boldBitmaps
000042ce ( 16.70 KB) _ZL24ubuntu_12_regularBitmaps
000036d0 ( 13.70 KB) _ZL25notosans_18_regularGlyphs
000036d0 ( 13.70 KB) _ZL25notosans_16_regularGlyphs
000036d0 ( 13.70 KB) _ZL25notosans_14_regularGlyphs
000036d0 ( 13.70 KB) _ZL25notosans_12_regularGlyphs
000036d0 ( 13.70 KB) _ZL24notosans_8_regularGlyphs
000036d0 ( 13.70 KB) _ZL22notosans_18_boldGlyphs
000036d0 ( 13.70 KB) _ZL22notosans_16_boldGlyphs
000036d0 ( 13.70 KB) _ZL22notosans_14_boldGlyphs
000036d0 ( 13.70 KB) _ZL22notosans_12_boldGlyphs
000036c0 ( 13.69 KB) _ZL28notosans_18_bolditalicGlyphs
000036c0 ( 13.69 KB) _ZL28notosans_16_bolditalicGlyphs
000036c0 ( 13.69 KB) _ZL28notosans_14_bolditalicGlyphs
000036c0 ( 13.69 KB) _ZL28notosans_12_bolditalicGlyphs
000036c0 ( 13.69 KB) _ZL24notosans_18_italicGlyphs
000036c0 ( 13.69 KB) _ZL24notosans_16_italicGlyphs
000036c0 ( 13.69 KB) _ZL24notosans_14_italicGlyphs
000036c0 ( 13.69 KB) _ZL24notosans_12_italicGlyphs
00003627 ( 13.54 KB) _ZL21ubuntu_10_boldBitmaps
00003551 ( 13.33 KB) _ZL12es_trie_data
000030c4 ( 12.19 KB) _ZL24ubuntu_10_regularBitmaps
00002eb0 ( 11.67 KB) _ZL28bookerly_18_bolditalicGlyphs
00002eb0 ( 11.67 KB) _ZL28bookerly_16_bolditalicGlyphs
00002eb0 ( 11.67 KB) _ZL28bookerly_14_bolditalicGlyphs
00002eb0 ( 11.67 KB) _ZL28bookerly_12_bolditalicGlyphs
00002eb0 ( 11.67 KB) _ZL25bookerly_18_regularGlyphs
00002eb0 ( 11.67 KB) _ZL25bookerly_16_regularGlyphs
00002eb0 ( 11.67 KB) _ZL25bookerly_14_regularGlyphs
00002eb0 ( 11.67 KB) _ZL25bookerly_12_regularGlyphs
00002eb0 ( 11.67 KB) _ZL24bookerly_18_italicGlyphs
00002eb0 ( 11.67 KB) _ZL24bookerly_16_italicGlyphs
00002eb0 ( 11.67 KB) _ZL24bookerly_14_italicGlyphs
00002eb0 ( 11.67 KB) _ZL24bookerly_12_italicGlyphs
00002eb0 ( 11.67 KB) _ZL22bookerly_18_boldGlyphs
00002eb0 ( 11.67 KB) _ZL22bookerly_16_boldGlyphs
00002eb0 ( 11.67 KB) _ZL22bookerly_14_boldGlyphs
00002eb0 ( 11.67 KB) _ZL22bookerly_12_boldGlyphs
00002d50 ( 11.33 KB) _ZL32opendyslexic_14_bolditalicGlyphs
00002d50 ( 11.33 KB) _ZL32opendyslexic_12_bolditalicGlyphs
00002d50 ( 11.33 KB) _ZL32opendyslexic_10_bolditalicGlyphs
00002d50 ( 11.33 KB) _ZL31opendyslexic_8_bolditalicGlyphs
00002d50 ( 11.33 KB) _ZL29opendyslexic_14_regularGlyphs
00002d50 ( 11.33 KB) _ZL29opendyslexic_12_regularGlyphs
00002d50 ( 11.33 KB) _ZL29opendyslexic_10_regularGlyphs
00002d50 ( 11.33 KB) _ZL28opendyslexic_8_regularGlyphs
00002d50 ( 11.33 KB) _ZL28opendyslexic_14_italicGlyphs
00002d50 ( 11.33 KB) _ZL28opendyslexic_12_italicGlyphs
00002d50 ( 11.33 KB) _ZL28opendyslexic_10_italicGlyphs
00002d50 ( 11.33 KB) _ZL27opendyslexic_8_italicGlyphs
00002d50 ( 11.33 KB) _ZL26opendyslexic_14_boldGlyphs
00002d50 ( 11.33 KB) _ZL26opendyslexic_12_boldGlyphs
00002d50 ( 11.33 KB) _ZL26opendyslexic_10_boldGlyphs
00002d50 ( 11.33 KB) _ZL25opendyslexic_8_boldGlyphs
00002bca ( 10.95 KB) _ZL25notosans_8_regularBitmaps
0000294c ( 10.32 KB) _ZL16SettingsPageHtml
000024f0 ( 9.23 KB) _ZL23ubuntu_12_regularGlyphs
000024f0 ( 9.23 KB) _ZL23ubuntu_10_regularGlyphs
000024f0 ( 9.23 KB) _ZL20ubuntu_12_boldGlyphs
000024f0 ( 9.23 KB) _ZL20ubuntu_10_boldGlyphs
00001b4c ( 6.82 KB) _ZL12fr_trie_data
000012e8 ( 4.73 KB) ciphersuite_definitions
00000c8d ( 3.14 KB) _ZL12HomePageHtml
00000708 ( 1.76 KB) _ZL7Logo120
00000708 ( 1.76 KB) _ZL7Logo120
00000688 ( 1.63 KB) esp_err_msg_table
00000613 ( 1.52 KB) _ZL12it_trie_data
00000500 ( 1.25 KB) namingBitmap
00000450 ( 1.08 KB) _ZN4mime9mimeTableE
00000404 ( 1.00 KB) _ZNSt8__detail12__prime_listE
00000340 ( 0.81 KB) ciphersuite_preference
00000300 ( 0.75 KB) _ZL31bookerly_18_bolditalicIntervals
00000300 ( 0.75 KB) _ZL31bookerly_16_bolditalicIntervals
00000300 ( 0.75 KB) _ZL31bookerly_14_bolditalicIntervals
00000300 ( 0.75 KB) _ZL31bookerly_12_bolditalicIntervals
00000300 ( 0.75 KB) _ZL28bookerly_18_regularIntervals
00000300 ( 0.75 KB) _ZL28bookerly_16_regularIntervals
00000300 ( 0.75 KB) _ZL28bookerly_14_regularIntervals
00000300 ( 0.75 KB) _ZL28bookerly_12_regularIntervals
00000300 ( 0.75 KB) _ZL27bookerly_18_italicIntervals
00000300 ( 0.75 KB) _ZL27bookerly_16_italicIntervals
00000300 ( 0.75 KB) _ZL27bookerly_14_italicIntervals
00000300 ( 0.75 KB) _ZL27bookerly_12_italicIntervals
00000300 ( 0.75 KB) _ZL25bookerly_18_boldIntervals
00000300 ( 0.75 KB) _ZL25bookerly_16_boldIntervals
00000300 ( 0.75 KB) _ZL25bookerly_14_boldIntervals
00000300 ( 0.75 KB) _ZL25bookerly_12_boldIntervals
000002a0 ( 0.66 KB) small_prime
000002a0 ( 0.66 KB) _ZL35opendyslexic_14_bolditalicIntervals
000002a0 ( 0.66 KB) _ZL35opendyslexic_12_bolditalicIntervals
000002a0 ( 0.66 KB) _ZL35opendyslexic_10_bolditalicIntervals
000002a0 ( 0.66 KB) _ZL34opendyslexic_8_bolditalicIntervals
000002a0 ( 0.66 KB) _ZL32opendyslexic_14_regularIntervals
000002a0 ( 0.66 KB) _ZL32opendyslexic_12_regularIntervals
000002a0 ( 0.66 KB) _ZL32opendyslexic_10_regularIntervals
000002a0 ( 0.66 KB) _ZL31opendyslexic_8_regularIntervals
000002a0 ( 0.66 KB) _ZL31opendyslexic_14_italicIntervals
000002a0 ( 0.66 KB) _ZL31opendyslexic_12_italicIntervals
000002a0 ( 0.66 KB) _ZL31opendyslexic_10_italicIntervals
000002a0 ( 0.66 KB) _ZL30opendyslexic_8_italicIntervals
000002a0 ( 0.66 KB) _ZL29opendyslexic_14_boldIntervals
000002a0 ( 0.66 KB) _ZL29opendyslexic_12_boldIntervals
000002a0 ( 0.66 KB) _ZL29opendyslexic_10_boldIntervals
000002a0 ( 0.66 KB) _ZL28opendyslexic_8_boldIntervals
00000280 ( 0.62 KB) K
000001c8 ( 0.45 KB) _ZL26ubuntu_12_regularIntervals
000001c8 ( 0.45 KB) _ZL26ubuntu_10_regularIntervals
000001c8 ( 0.45 KB) _ZL23ubuntu_12_boldIntervals
000001c8 ( 0.45 KB) _ZL23ubuntu_10_boldIntervals
0000016c ( 0.36 KB) utf8_encoding_ns
0000016c ( 0.36 KB) utf8_encoding
0000016c ( 0.36 KB) little2_encoding_ns
0000016c ( 0.36 KB) little2_encoding
0000016c ( 0.36 KB) latin1_encoding_ns
0000016c ( 0.36 KB) latin1_encoding
0000016c ( 0.36 KB) internal_utf8_encoding_ns
0000016c ( 0.36 KB) internal_utf8_encoding
0000016c ( 0.36 KB) big2_encoding_ns
0000016c ( 0.36 KB) big2_encoding
0000016c ( 0.36 KB) ascii_encoding_ns
0000016c ( 0.36 KB) ascii_encoding
0000016c ( 0.36 KB) __default_global_locale
00000150 ( 0.33 KB) oid_sig_alg
00000150 ( 0.33 KB) mbedtls_cipher_definitions
00000140 ( 0.31 KB) adc_error_coef_atten
00000140 ( 0.31 KB) NUM_ERROR_CORRECTION_CODEWORDS
0000012c ( 0.29 KB) _ZL11lookupTable
00000101 ( 0.25 KB) _ctype_
00000100 ( 0.25 KB) unhex
00000100 ( 0.25 KB) tokens
00000100 ( 0.25 KB) nmstrtPages
00000100 ( 0.25 KB) namePages
00000100 ( 0.25 KB) __chclass
00000100 ( 0.25 KB) FSb4
00000100 ( 0.25 KB) FSb3
00000100 ( 0.25 KB) FSb2
00000100 ( 0.25 KB) FSb
000000fc ( 0.25 KB) _C_time_locale
000000f0 ( 0.23 KB) oid_ecp_grp
000000d4 ( 0.21 KB) _ZL8mapTable
000000c8 ( 0.20 KB) __mprec_tens
000000c0 ( 0.19 KB) dh_group5_prime
000000c0 ( 0.19 KB) dh_group5_order
000000b4 ( 0.18 KB) _ZL31notosans_18_bolditalicIntervals
000000b4 ( 0.18 KB) _ZL31notosans_16_bolditalicIntervals
000000b4 ( 0.18 KB) _ZL31notosans_14_bolditalicIntervals
000000b4 ( 0.18 KB) _ZL31notosans_12_bolditalicIntervals
000000b4 ( 0.18 KB) _ZL28notosans_18_regularIntervals
============================================
Top 40 largest symbols in section: .flash.text
Total section size: 1431082 bytes (1397.54 KB)
============================================
000025b8 ( 9.43 KB) http_parser_execute
000023aa ( 8.92 KB) _vfprintf_r
000022ce ( 8.70 KB) _svfprintf_r
0000225a ( 8.59 KB) _svfwprintf_r
00001fdc ( 7.96 KB) __ssvfscanf_r
00001cb0 ( 7.17 KB) _Z15getSettingsListv
00001bbc ( 6.93 KB) mbedtls_ssl_handshake_server_step
00001ac2 ( 6.69 KB) __ssvfiscanf_r
000018fe ( 6.25 KB) mbedtls_ssl_handshake_client_step
000015fe ( 5.50 KB) mdns_parse_packet
00001554 ( 5.33 KB) _vfiprintf_r
0000146e ( 5.11 KB) _svfiprintf_r
0000123a ( 4.56 KB) doProlog
0000101e ( 4.03 KB) tcp_input
0000100e ( 4.01 KB) unsignedCharToPrintable
00000f4e ( 3.83 KB) pjpeg_decode_mcu
00000ef6 ( 3.74 KB) nd6_input
00000d4a ( 3.32 KB) _dtoa_r
00000d44 ( 3.32 KB) little2_contentTok
00000d44 ( 3.32 KB) big2_contentTok
00000d36 ( 3.30 KB) _strtod_l
00000d30 ( 3.30 KB) mbedtls_high_level_strerr
00000cec ( 3.23 KB) ieee80211_sta_new_state
00000ca6 ( 3.16 KB) tcp_receive
00000c82 ( 3.13 KB) mbedtls_internal_sha512_process
00000c14 ( 3.02 KB) _ZN9WebServer10_parseFormER10WiFiClient6Stringm
00000bc0 ( 2.94 KB) qrcode_initBytes
00000b62 ( 2.85 KB) __multf3
00000b1c ( 2.78 KB) normal_contentTok
00000a98 ( 2.65 KB) _ZN16ContentOpfParser12startElementEPvPKcPS2_
00000a96 ( 2.65 KB) _ZN18JpegToBmpConverter27jpegFileToBmpStreamInternalER6FsFileR5Printiibb
00000a82 ( 2.63 KB) _mdns_service_task
00000a64 ( 2.60 KB) __strftime
00000a64 ( 2.60 KB) _ZNK9BaseTheme19drawRecentBookCoverER11GfxRenderer4RectRKSt6vectorI10RecentBookSaIS4_EEiRbS9_S9_St8functionIFbvEE
00000a60 ( 2.59 KB) __strftime
000009cc ( 2.45 KB) _Z16start_ssl_clientP17sslclient_contextRK9IPAddressmPKciS5_bS5_S5_S5_S5_bPS5_
000009c4 ( 2.44 KB) doContent
0000099a ( 2.40 KB) wpa_sm_rx_eapol
00000984 ( 2.38 KB) __divtf3
00000974 ( 2.36 KB) _ZNSt6locale5_ImplC2Ej
============================================
Top 10 largest symbols in section: .iram0.text
Total section size: 57640 bytes (56.29 KB)
============================================
00000668 ( 1.60 KB) rmt_driver_isr_default
00000504 ( 1.25 KB) tlsf_realloc
00000458 ( 1.09 KB) tlsf_free
000003e8 ( 0.98 KB) tlsf_malloc
000003d0 ( 0.95 KB) esp_sleep_start
00000340 ( 0.81 KB) rtc_sleep_init
00000218 ( 0.52 KB) spi_flash_mmap_pages
000001fc ( 0.50 KB) esp_flash_erase_region
000001fc ( 0.50 KB) call_start_cpu0
000001de ( 0.47 KB) wdt_hal_init
```
---
### AI Usage
While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.
Did you use AI tools to help write this code? **YES**
2026-02-19 22:36:43 +11:00
..
2026-02-14 18:49:39 +03:00
2026-02-19 21:38:09 +11:00
2026-02-13 02:31:15 +03:00
2026-02-17 00:28:42 +11:00
2026-02-16 20:27:43 +11:00
2026-02-19 22:33:29 +11:00
2026-02-16 19:56:59 +11:00
2026-02-19 22:36:43 +11:00
2026-02-19 21:05:56 +11:00