Page 1 of 1

Problem with IRAM

Posted: Tue Mar 30, 2021 9:04 am
by l.wuyts
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.

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