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