Migration from 4.1.1 to 4.4.4 IRAM usage increases over 175%
Posted: Thu Mar 30, 2023 10:12 am
After change ESP-IDF from 4.1.1 to 4.4.4 and compile project, I was very surprised by the increased volume of IRAM usage from ~54Kb to ~123Kb. Comparsion table is below:
According to the table, you can see that the amount of IRAM memory usage has increased by 69.1 Kb. The source codes were changed minimally, only for compilation complete successful. Only names of some types and structures have changed, for example:
it was coap_tid_t, it became coap_mid_t, and so on.
I have not found any new IDF settings regarding IRAM. Is the new IDF that fat? What then is in version 5.x.x?
Link result:
Are there any compilation options or settings that can quickly minimize the use of IRAM ??
- Component IDF 4.1.1 IDF 4.4.4 DIFF
- libapp_update.a 154 371 -217
- libbootloader_support.a 863 2657 -1794
- libbutton.a 22 76 -54
- libcharge_status.a 40 102 -62
- libcoexist.a 3700 3185 515
- libesp_ringbuf.a 3398 5705 -2307
- libesp_wifi.a 469 840 -371
- libfreertos.a 14870 28327 -13457
- libhal.a 443 9806 -9363
- libheap.a 1740 17483 -15743
- liblis2dh12_routine.a 34 95 -61
- liblog.a 258 43 215
- libnewlib.a 804 2298 -1494
- libpthread.a 186 287 -101
- libqma7981_routine.a 18 28 -10
- librtc.a 2239 2211 28
- libspi_flash.a 5667 15657 -9990
- libxtensa.a 145 117 28
- libdriver.a 1907 0 1907
- libesp_common.a 932 0 932
- libesp32.a 8104 0 8104
- libgcc.a 193 0 193
- libsoc.a 8194 0 8194
- libactive.a 0 46 -46
- libaht10.a 0 46 -46
- libcoap_urls.a 0 46 -46
- libdebug_console.a 0 46 -46
- libesp_hw_support.a 0 14907 -14907
- libesp_ipc.a 0 890 -890
- libesp_phy.a 0 221 -221
- libesp_pm.a 0 1823 -1823
- libesp_rom.a 0 303 -303
- libesp_system.a 0 4834 -4834
- libesp_timer.a 0 2296 -2296
- libfailure.a 0 46 -46
- libgsm.a 0 92 -92
- libindication.a 0 46 -46
- liblogic_event_processor0 46 -46
- libmultisensor.a 0 46 -46
- libota.a 0 46 -46
- libphy.a 0 7762 -7762
- libqma7981.a 0 46 -46
- libservice.a 0 46 -46
- libsettings.a 0 46 -46
- libsntp_runner.a 0 46 -46
- libsystem_info.a 0 46 -46
- libwho_am_i.a 0 46 -46
- libxt_hal.a 0 443 -443
- TOTAL: 54380 123549 -69169
According to the table, you can see that the amount of IRAM memory usage has increased by 69.1 Kb. The source codes were changed minimally, only for compilation complete successful. Only names of some types and structures have changed, for example:
it was coap_tid_t, it became coap_mid_t, and so on.
I have not found any new IDF settings regarding IRAM. Is the new IDF that fat? What then is in version 5.x.x?
Link result:
Code: Select all
xtensa-esp32-elf/bin/ld: region `iram0_0_seg' overflowed by 32380 bytes