Unable to flash code on to ESP32 - Memory allocation failed error
Posted: Thu Apr 28, 2022 7:15 pm
Trying to flash my program on ESP32 and get the following error:
Here's my partitions.cv file:
Here's my code in main.c
spiffs_start code:
wifi_provision code is taken straight from the wifi_provisioning manager code in esp/esp-idf/examples/provisioning/wifi_prov_mgr. I think this is where my code is failing - where it attempts to start protocomm_ble from protocomm_ble.c. Any suggestions on how to debug what the problem might be? When I run the wifi_provisioning example stand alone, it works perfectly fine. But importing the code into a new program which combines spiffs creates this issue. I have to admit, I don't understand a whole lot about how to create partitions in partitions.csv.
Code: Select all
I (800) spiffs: Initializing SPIFFS
I (890) spiffs: Partition size: total: 896321, used: 0
I (1370) wifi:wifi driver task: 3ffd2a90, prio:23, stack:6656, core=0
I (1370) system_api: Base MAC address is not set
I (1370) system_api: read default base MAC address from EFUSE
I (1420) wifi:wifi firmware version: 1865b55
I (1420) wifi:wifi certification version: v7.0
I (1420) wifi:config NVS flash: enabled
I (1420) wifi:config nano formating: disabled
I (1430) wifi:Init data frame dynamic rx buffer num: 32
I (1430) wifi:Init management frame dynamic rx buffer num: 32
I (1440) wifi:Init management short buffer num: 32
I (1440) wifi:Init dynamic tx buffer num: 32
I (1450) wifi:Init static rx buffer size: 1600
I (1450) wifi:Init static rx buffer num: 10
I (1450) wifi:Init dynamic rx buffer num: 32
I (1460) wifi_init: rx ba win: 6
I (1460) wifi_init: tcpip mbox: 32
I (1470) wifi_init: udp mbox: 6
I (1470) wifi_init: tcp mbox: 6
I (1470) wifi_init: tcp tx win: 5744
I (1480) wifi_init: tcp rx win: 5744
I (1480) wifi_init: tcp mss: 1440
I (1490) wifi_init: WiFi IRAM OP enabled
I (1490) wifi_init: WiFi RX IRAM OP enabled
I (1500) wifi_prov_mgr: execute_event_cb : 0
I (1500) wifi_prov_scheme_ble: BT memory released
I (1510) wifi_prov_mgr: scheme cb: 0
I (1510) wifi_provision: Starting provisioning
I (1510) wifi_provision: service name is: EZZLE_01234
I (1520) wifi_provision: Starting wifi_prov_scheme_ble_set_service_uuid from app.c and set_config_service from scheme_ble.c
W (1540) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration
I (1680) phy: phy_version: 4500, 0cd6843, Sep 17 2020, 15:37:07, 0, 2
I (1700) wifi:mode : sta (8c:aa:b5:b5:72:04)
I (1700) wifi_prov_scheme_ble: Starting set_config_service from scheme_ble.c
I (1700) wifi_prov_mgr: Starting provisioning service from manager.c
I (1710) wifi_prov_scheme_ble: Starting provisioning service from scheme_ble.c
I (1720) protocomm_ble: Starting protocomm_ble_start service from protocomm_ble.c
I (1730) BTDM_INIT: BT controller compile version [3723d5b]
Memory allocation failed
Backtrace:0x4008eff3:0x3ffd9530 0x4008f515:0x3ffd9550 0x400d38bb:0x3ffd9570 0x40081356:0x3ffd9590 0x40081371:0x3ffd95b0 0x40096118:0x3ffd95d0 0x4009613c:0x3ffd95f0 0x40105178:0x3ffd9610 0x4010544c:0x3ffd9670 0x400e1fac:0x3ffd96b0 0x400e24d7:0x3ffd96d0 0x400e2580:0x3ffd96f0 0x40104515:0x3ffd9720 0x401065f1:0x3ffd9740 0x4008f51d:0x3ffd9760
0x4008eff3: panic_abort at C:/Users/Prog/ESP/esp-idf/components/esp_system/panic.c:330
0x4008f515: esp_system_abort at C:/Users/Prog/ESP/esp-idf/components/esp_system/system_api.c:106
0x400d38bb: heap_caps_alloc_failed at C:/Users/Prog/ESP/esp-idf/components/heap/heap_caps.c:67
0x40081356: heap_caps_malloc at C:/Users/Prog/ESP/esp-idf/components/heap/heap_caps.c:155
0x40081371: heap_caps_malloc_default at C:/Users/Prog/ESP/esp-idf/components/heap/heap_caps.c:177
0x40096118: _calloc_r at C:/Users/Prog/ESP/esp-idf/components/newlib/heap.c:73
0x4009613c: calloc at C:/Users/Prog/ESP/esp-idf/components/newlib/heap.c:37
0x40105178: config_parse at C:/Users/Prog/ESP/esp-idf/components/bt/common/osi/config.c:553
0x4010544c: config_new at C:/Users/Prog/ESP/esp-idf/components/bt/common/osi/config.c:105
0x400e1fac: btc_config_init at C:/Users/Prog/ESP/esp-idf/components/bt/host/bluedroid/btc/core/btc_config.c:74
0x400e24d7: btc_init_bluetooth at C:/Users/Prog/ESP/esp-idf/components/bt/host/bluedroid/btc/core/btc_main.c:66
0x400e2580: btc_main_call_handler at C:/Users/Prog/ESP/esp-idf/components/bt/host/bluedroid/btc/core/btc_main.c:114
0x40104515: btc_thread_handler at C:/Users/Prog/ESP/esp-idf/components/bt/common/btc/core/btc_task.c:155
0x401065f1: osi_thread_run at C:/Users/Prog/ESP/esp-idf/components/bt/common/osi/thread.c:68
0x4008f51d: vPortTaskWrapper at C:/Users/Prog/ESP/esp-idf/components/freertos/xtensa/port.c:143
ELF file SHA256: 34316b95d76b8a00
CPU halted.
Code: Select all
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x6000,
phy_init, data, phy, 0xf000, 0x1000,
factory, app, factory, 0x10000, 1300000,
storage, data, spiffs, , 0xF0000,
Code: Select all
void app_main(void)
{
spiffs_start();
wifi_provision();
http_start();
}
Code: Select all
void spiffs_start(void)
{
ESP_LOGI(TAG, "Initializing SPIFFS");
esp_vfs_spiffs_conf_t conf = {
.base_path = "/spiffs",
.partition_label = NULL,
.max_files = 5,
.format_if_mount_failed = true
};
// Use settings defined above to initialize and mount SPIFFS filesystem.
// Note: esp_vfs_spiffs_register is an all-in-one convenience function.
esp_err_t ret = esp_vfs_spiffs_register(&conf);
if (ret != ESP_OK) {
if (ret == ESP_FAIL) {
ESP_LOGE(TAG, "Failed to mount or format filesystem");
} else if (ret == ESP_ERR_NOT_FOUND) {
ESP_LOGE(TAG, "Failed to find SPIFFS partition");
} else {
ESP_LOGE(TAG, "Failed to initialize SPIFFS (%s)", esp_err_to_name(ret));
}
return;
}
size_t total = 0, used = 0;
ret = esp_spiffs_info(conf.partition_label, &total, &used);
if (ret != ESP_OK) {
ESP_LOGE(TAG, "Failed to get SPIFFS partition information (%s)", esp_err_to_name(ret));
} else {
ESP_LOGI(TAG, "Partition size: total: %d, used: %d", total, used);
}
}