When updating the Toit platform to the latest esp-idf 5.0, I notice that the IRAM usage has been increasing over the board.
See the changes from March to today at https://gist.github.com/erikcorry/f44c6 ... 89ab40b9dd
One big culprit is the bluetooth stack. Is there a way to make it use flash instead of IRAM? 30k is a lot of memory on a limited system.
My sdkconfig is at https://gist.github.com/erikcorry/ed93e ... b8feed4d12
IRAM usage rising, especially libbtdm_app.a
Re: IRAM usage rising, especially libbtdm_app.a
I second this
Some of my boilerplate test apps which only provision over BLE sometimes run out of IRAM, without even adding any app logic
Using esp-idf 5.1.1
Some of my boilerplate test apps which only provision over BLE sometimes run out of IRAM, without even adding any app logic
Using esp-idf 5.1.1
Re: IRAM usage rising, especially libbtdm_app.a
Same for me!
No answer so for?! What is going on? Here is my feedback!
I don’t know what you crazy guys at ESP are doing !!? I was about to migrate my project from IDF 4.2 to IDF 5.2. I encountered that even your libraries including wifi+BT do not compile because IRAM gets exhausted! I mean, are you totally dumped! You are dealing with a resource constrained device and offer such a crappy library!! I mean, from where are you sourcing your engineers? Directly from high school? Do you ever test this?
Furthermore, CMAKE is a pain! I liked the gnu make, worked out of the box. Now you need to declare all the dependencies. What a shit and what a pain! Device configuration is a pain to get optimized performance. Currently in need a solution to fix this issue:
Used static IRAM: 140074 bytes ( -9002 remain, 106.9% used) Overflow detected!
Now, you crazy guys tell me how to fix this! But, don't tell me I need to enable the extra IRAM#1 to get another issue on runtime heap allocation!
millim
No answer so for?! What is going on? Here is my feedback!
I don’t know what you crazy guys at ESP are doing !!? I was about to migrate my project from IDF 4.2 to IDF 5.2. I encountered that even your libraries including wifi+BT do not compile because IRAM gets exhausted! I mean, are you totally dumped! You are dealing with a resource constrained device and offer such a crappy library!! I mean, from where are you sourcing your engineers? Directly from high school? Do you ever test this?
Furthermore, CMAKE is a pain! I liked the gnu make, worked out of the box. Now you need to declare all the dependencies. What a shit and what a pain! Device configuration is a pain to get optimized performance. Currently in need a solution to fix this issue:
Used static IRAM: 140074 bytes ( -9002 remain, 106.9% used) Overflow detected!
Now, you crazy guys tell me how to fix this! But, don't tell me I need to enable the extra IRAM#1 to get another issue on runtime heap allocation!
millim
Code: Select all
Used static DRAM: 101916 bytes ( 22664 remain, 81.8% used)
.data size: 31524 bytes
.bss size: 70392 bytes
Used static IRAM: 140074 bytes ( -9002 remain, 106.9% used) Overflow detected!
.text size: 139047 bytes
.vectors size: 1027 bytes
Used Flash size : 2488891 bytes
.text: 1425007 bytes
.rodata: 1063628 bytes
Total image size: 2660489 bytes (.bin may be padded larger)
Per-archive contributions to ELF file:
Archive File DRAM .data & 0.bss .rtc.text IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata & .rodata_noload & .appdesc flash_total
libbinaries.a 0 0 0 0 0 0 0 600726 0 0 600726
libbt.a 4736 2047 0 1700 0 8483 227359 14741 0 0 248536
libplayer.a 308 21860 0 0 0 22168 107775 92171 0 0 200254
libnet80211.a 853 8133 0 0 0 8986 120754 12152 10554 0 133759
libmbedcrypto.a 128 81 0 0 0 209 88544 35412 0 0 124084
libpthread.a 16 12 0 0 0 28 1451 122301 0 0 123768
libbtdm_app.a 957 2851 0 30862 0 34670 88437 1143 0 0 121399
libaacdec.a 0 0 0 0 0 0 84474 33031 0 0 117505
liblwip.a 12 3725 0 0 0 3737 95690 3471 0 0 99173
libc.a 432 320 0 7935 0 8687 83686 5188 0 0 97241
libmbedtls.a 72 664 0 0 0 736 27302 65923 0 0 93297
liblibjpeg-turbo.a 0 0 0 0 0 0 75533 3004 0 0 78537
libpp.a 2459 1448 0 1528 0 5435 54615 4784 150 0 63386
libwpa_supplicant.a 8 1316 0 0 0 1324 59226 1680 0 0 60914
libwnpmp3.a 6684 4096 0 2500 0 13280 30679 19886 0 0 59749
libdriver.a 292 174 0 5311 0 5777 36760 2901 0 0 45264
libphy.a 592 640 0 8882 0 10114 33871 0 0 0 43345
libupnp.a 112 8744 0 0 0 8856 28993 10 0 0 29115
libesp_hw_support.a 388 135 102 13234 0 13859 12576 1262 0 0 27562
libhardware.a 24 2257 0 71 0 2352 20216 4353 0 0 24664
libfreertos.a 3108 1045 0 17374 0 21527 764 1481 0 0 22727
libnvs_flash.a 0 24 0 0 0 24 16342 4785 0 0 21127
libhal.a 4498 8 0 8404 0 12910 7873 161 0 0 20936
libcoexist.a 1685 61 0 2995 0 4741 4097 9506 0 0 18283
libstdc++.a 8 49 0 0 0 57 4944 10205 0 0 15157
libm.a 0 0 0 0 0 0 13951 560 0 0 14511
libesp_system.a 536 323 0 5015 0 5874 8313 588 0 0 14452
libheap.a 12 8 0 6517 0 6537 3295 1652 0 0 11476
libspi_flash.a 1166 16 0 8455 0 9637 832 466 0 0 10919
libsdmmc.a 0 0 0 0 0 0 9737 769 0 0 10506
libvfs.a 308 72 0 0 0 380 7682 437 0 0 8427
libmbedx509.a 0 0 0 0 0 0 8248 45 0 0 8293
libesp_psram.a 9 100 0 4565 0 4674 2298 166 0 0 7038
libgcc.a 8 8 0 104 0 120 5913 872 0 0 6897
libesp_netif.a 8 29 0 0 0 37 6499 119 0 0 6626
libesp-tls.a 0 4 0 0 0 4 5376 44 0 0 5420
libesp_wifi.a 472 51 0 384 0 907 3463 70 0 0 4389
libesp_mm.a 37 124 0 823 0 984 2933 298 0 0 4091
libmain.a 0 8948 0 0 0 8948 4004 0 0 0 4004
libesp_event.a 0 4 0 0 0 4 3547 163 0 0 3710
libbootloader_support.a 0 4 0 794 0 798 2716 88 0 0 3598
libxtensa.a 1044 0 0 1853 424 3321 104 36 0 0 3461
libnewlib.a 152 200 0 1612 0 1964 1506 95 0 0 3365
libesp_timer.a 32 24 0 1503 0 1559 1528 114 0 0 3177
libesp_phy.a 16 20 0 189 0 225 1875 244 0 0 2324
libesp_pm.a 12 115 0 923 0 1050 1261 49 0 0 2245
librtc.a 0 4 0 2195 0 2199 0 0 0 0 2195
libsoc.a 40 0 0 33 0 73 43 1854 0 0 1970
libesp_common.a 0 0 0 0 0 0 47 1742 0 0 1789
libesp_partition.a 0 8 0 0 0 8 1552 168 0 0 1720
libefuse.a 60 4 0 0 0 64 1226 125 0 0 1411
liblog.a 8 272 0 312 0 592 1023 39 0 0 1382
libesp_adc.a 0 0 0 0 0 0 852 500 0 0 1352
libesp_ringbuf.a 0 0 0 947 0 947 0 97 0 0 1044
libapp_update.a 0 4 0 0 0 4 658 62 0 0 720
libesp_coex.a 88 0 0 151 0 239 281 0 0 0 520
libxt_hal.a 0 0 0 443 0 443 0 32 0 0 475
libesp_app_format.a 0 10 0 0 0 10 162 4 0 256 422
libcore.a 0 33 0 0 0 33 247 43 0 0 290
libesp_rom.a 0 0 0 147 0 147 44 0 0 0 191
libdsp.a 0 0 0 0 0 0 132 0 0 0 132
libcxx.a 0 0 0 0 0 0 5 112 0 0 117
(exe) 0 0 0 0 3 3 3 12 0 0 18
libnvs_sec_provider.a 0 0 0 0 0 0 5 0 0 0 5
libhttp_parser.a 0 0 0 0 0 0 0 0 0 0 0
libmesh.a 0 0 0 0 0 0 0 0 0 0 0
-
- Posts: 2
- Joined: Sat Sep 24, 2022 10:31 am
Re: IRAM usage rising, especially libbtdm_app.a
Hello, Is there any news on this? did you find any solution to this problem? our binary becomes much larger after enabling only NimBLE with only one profile, what should we do?
Who is online
Users browsing this forum: No registered users and 189 guests