Memory optimization
Posted: Wed Feb 01, 2023 6:26 pm
Hi
I am getting low on IRAM. Optimization reduced the usage but still on the edge. I am using a lot of components from ESP-IDF but not everything at the same time.
Below is a "functional description of my architecture.
I assume that the static analyze of IRAM usage summarize it all, i.e I2C+Nimble BLE+WIFI+ESP-MQTT+NTP.
This will never happen so the indicated IRAM usage is much to high.
Before the optimization I was using to much IRAM so I could not flash my device.
As I describer the actual usage is lower then what the static analyze shows.
Is there a way to disable this IRAM check so I can load my code even if the analyze says I use to much.
I am getting low on IRAM. Optimization reduced the usage but still on the edge. I am using a lot of components from ESP-IDF but not everything at the same time.
Below is a "functional description of my architecture.
Code: Select all
main:
state = get_app_state_to_run;
switch(state) {
case A: runA (uses I2C).
case B: runB (uses Nimble BLE, I2C )
case C: runC (uses WIFI,ESP-MQTT, NTP, I2C)
}
if ( no_state_change)
just_wait;
else
save_new_state
restart_from_main.
This will never happen so the indicated IRAM usage is much to high.
Before the optimization I was using to much IRAM so I could not flash my device.
As I describer the actual usage is lower then what the static analyze shows.
Is there a way to disable this IRAM check so I can load my code even if the analyze says I use to much.