mirror of
https://github.com/jomjol/AI-on-the-edge-device.git
synced 2025-12-09 13:06:54 +03:00
* centralize PSRAM usage (application code only) * update logging * update logging * fix use after free * initialize buffer * free rgb_image before ussing it for new allocation * use wrapper function * switch log level to debug * . * undo adding free() calls * . * add names to all CImage instances * . * . * . * revert changes of stbi_image_free() with free_psram_heap() on the places where is is not in PSRAM * . * typos * typo * Added MQTT Outbox explanation/warning * added CONFIG_SPIRAM_USE_MEMMAP explanation --------- Co-authored-by: CaCO3 <caco@ruinelli.ch>
42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#include "ClassLogFile.h"
|
|
#include "esp_heap_caps.h"
|
|
|
|
static const char* TAG = "PSRAM";
|
|
|
|
using namespace std;
|
|
|
|
|
|
void *malloc_psram_heap(std::string name, size_t size, uint32_t caps) {
|
|
void *ptr;
|
|
|
|
ptr = heap_caps_malloc(size, caps);
|
|
if (ptr != NULL) {
|
|
LogFile.WriteToFile(ESP_LOG_DEBUG, TAG, "Allocated " + to_string(size) + " bytes in PSRAM for '" + name + "'");
|
|
}
|
|
else {
|
|
LogFile.WriteToFile(ESP_LOG_ERROR, TAG, "Failed to allocate " + to_string(size) + " bytes in PSRAM for '" + name + "'!");
|
|
}
|
|
|
|
return ptr;
|
|
}
|
|
|
|
|
|
void *calloc_psram_heap(std::string name, size_t n, size_t size, uint32_t caps) {
|
|
void *ptr;
|
|
|
|
ptr = heap_caps_calloc(n, size, caps);
|
|
if (ptr != NULL) {
|
|
LogFile.WriteToFile(ESP_LOG_DEBUG, TAG, "Allocated " + to_string(size) + " bytes in PSRAM for '" + name + "'");
|
|
}
|
|
else {
|
|
LogFile.WriteToFile(ESP_LOG_ERROR, TAG, "Failed to allocate " + to_string(size) + " bytes in PSRAM for '" + name + "'!");
|
|
}
|
|
|
|
return ptr;
|
|
}
|
|
|
|
|
|
void free_psram_heap(std::string name, void *ptr) {
|
|
LogFile.WriteToFile(ESP_LOG_DEBUG, TAG, "Freeing memory in PSRAM used for '" + name + "'...");
|
|
heap_caps_free(ptr);
|
|
} |