psram.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "ClassLogFile.h"
  2. #include "esp_heap_caps.h"
  3. static const char* TAG = "PSRAM";
  4. using namespace std;
  5. void *malloc_psram_heap(std::string name, size_t size, uint32_t caps) {
  6. void *ptr;
  7. ptr = heap_caps_malloc(size, caps);
  8. if (ptr != NULL) {
  9. LogFile.WriteToFile(ESP_LOG_DEBUG, TAG, "Allocated " + to_string(size) + " bytes in PSRAM for '" + name + "'");
  10. }
  11. else {
  12. LogFile.WriteToFile(ESP_LOG_ERROR, TAG, "Failed to allocate " + to_string(size) + " bytes in PSRAM for '" + name + "'!");
  13. }
  14. return ptr;
  15. }
  16. void *calloc_psram_heap(std::string name, size_t n, size_t size, uint32_t caps) {
  17. void *ptr;
  18. ptr = heap_caps_calloc(n, size, caps);
  19. if (ptr != NULL) {
  20. LogFile.WriteToFile(ESP_LOG_DEBUG, TAG, "Allocated " + to_string(size) + " bytes in PSRAM for '" + name + "'");
  21. }
  22. else {
  23. LogFile.WriteToFile(ESP_LOG_ERROR, TAG, "Failed to allocate " + to_string(size) + " bytes in PSRAM for '" + name + "'!");
  24. }
  25. return ptr;
  26. }
  27. void free_psram_heap(std::string name, void *ptr) {
  28. LogFile.WriteToFile(ESP_LOG_DEBUG, TAG, "Freeing memory in PSRAM used for '" + name + "'...");
  29. heap_caps_free(ptr);
  30. }