Problem with IRAM
Posted: Tue Mar 30, 2021 9:04 am
Hello everyone,
I'm trying to make an application which plays an mp3 file from flash (spiffs) to I2S and at the same time is able to use Bluetooth and WiFi.
I read on the reference pages, when this is required, PSRAM is needed. I've enabled PSRAM and the ESP32 recognized it. When I try to compile my application with Bluetooth and WiFi enabled and using provisioning, I get the error that the IRAM is too small and that it is 20kB oversized.
When I compile without provisioning, it compiles OK, but the IRAM is already almost full. Is there any fix for this?
This is the memory usage sorted by IRAM.
I'm trying to make an application which plays an mp3 file from flash (spiffs) to I2S and at the same time is able to use Bluetooth and WiFi.
I read on the reference pages, when this is required, PSRAM is needed. I've enabled PSRAM and the ESP32 recognized it. When I try to compile my application with Bluetooth and WiFi enabled and using provisioning, I get the error that the IRAM is too small and that it is 20kB oversized.
When I compile without provisioning, it compiles OK, but the IRAM is already almost full. Is there any fix for this?
This is the memory usage sorted by IRAM.
Code: Select all
Archive File DRAM .data .bss other IRAM D/IRAM Flash code rodata Total
libpp.a 1262 0 0 20769 0 34991 4485 61507
libfreertos.a 4140 792 0 15523 0 244 2091 22790
libesp32.a 80 128 0 12564 0 15102 21683 49557
libnet80211.a 1038 0 0 11664 0 97783 21548 132033
libsoc.a 216 4 0 10885 0 8872 2999 22976
libspi_flash.a 1629 294 0 8136 0 1678 1638 13375
libphy.a 1621 675 0 7837 0 32190 0 42323
libc.a 41 8 0 6761 0 61276 4195 72281
libesp_ringbuf.a 0 0 0 4469 0 0 615 5084
libheap.a 305 8 0 3940 0 1707 1062 7022
libcoexist.a 1999 28 0 3580 0 4273 303 10183
libesp_system.a 1901 29 0 3293 0 335 203 5761
libdriver.a 171 109 0 2389 0 30520 10339 43528
librtc.a 0 4 0 1697 0 0 0 1701
libesp_timer.a 16 104 0 1403 0 1064 832 3419
libnewlib.a 190 272 0 1007 0 1094 80 2643
libcodec-utils.a 0 0 0 699 0 165 0 864
libxtensa.a 0 0 0 580 0 0 69 649
libesp_wifi.a 536 69 0 535 0 5762 3207 10109
libesp-mp3.a 0 0 0 465 0 17394 12134 29993
libhal.a 0 0 0 443 0 0 32 475
libesp_common.a 169 159 0 305 0 2388 6620 9641
liblog.a 8 272 0 276 0 844 161 1561
libpthread.a 16 12 0 239 0 811 493 1571
libapp_update.a 1 12 0 224 0 179 470 886
libgcc.a 8 12 0 193 0 5835 872 6920
libesp_ipc.a 0 56 0 192 0 441 106 795
libmbedcrypto.a 64 33 0 30 0 49763 4215 54105
(exe) 0 0 0 3 0 3 12 18
libvfs.a 308 48 0 0 0 6547 1026 7929
libaudio_hal.a 76 8 0 0 0 2928 2805 5817
libefuse.a 52 4 0 0 0 1209 740 2005
libHAL.a 52 0 0 0 0 421 108 581
liblwip.a 21 0 0 0 0 88600 15913 104534
libwpa_supplicant.a 12 844 0 0 0 46142 3782 50780
libesp_netif.a 12 25 0 0 0 6170 2346 8553
libstdc++.a 8 20 0 0 0 2680 1044 3752
libm.a 4 0 0 0 0 6590 75 6669
libspiffs.a 0 12 0 0 0 24889 1559 26460
libnvs_flash.a 0 24 0 0 0 15399 3018 18441
libaudio_pipeline.a 0 4 0 0 0 10209 3586 13799
libesp_processing.a 0 0 0 0 0 7985 2396 10381
libmain.a 0 246 0 0 0 3681 1526 5453
libesp_peripherals.a 0 12 0 0 0 3366 1417 4795
libesp_event.a 0 4 0 0 0 3392 1185 4581
libaudio_stream.a 0 0 0 0 0 3164 1165 4329
libaudio_board.a 0 4 0 0 0 1067 702 1773
libsoc_esp32.a 0 0 0 0 0 0 1530 1530
libaudio_sal.a 0 0 0 0 0 489 586 1075
libcore.a 0 29 0 0 0 609 228 866
libbootloader_support.a 0 0 0 0 0 752 20 772
libtcpip_adapter.a 0 17 0 0 0 228 0 245
libcxx.a 0 0 0 0 0 11 0 11
libAppError.a 0 0 0 0 0 0 0 0
libdisplay_service.a 0 0 0 0 0 0 0 0
libesp-aac.a 0 0 0 0 0 0 0 0
libesp-ogg-container.a 0 0 0 0 0 0 0 0
libesp-opus.a 0 0 0 0 0 0 0 0
libesp-tremor.a 0 0 0 0 0 0 0 0
libesp_adc_cal.a 0 0 0 0 0 0 0 0
libesp_dispatcher.a 0 0 0 0 0 0 0 0
libesp_eth.a 0 0 0 0 0 0 0 0
libfatfs.a 0 0 0 0 0 0 0 0
libmbedtls.a 0 0 0 0 0 0 0 0
libmbedx509.a 0 0 0 0 0 0 0 0
libmesh.a 0 0 0 0 0 0 0 0
libsdmmc.a 0 0 0 0 0 0 0 0