heap: removed ptr check in diram area since aligned allocator does not support data allocated from IRAM

This commit is contained in:
Felipe Neves 2019-12-20 13:03:02 -03:00
parent 0d8a5ebec7
commit 6a307ee70f
2 changed files with 7 additions and 8 deletions

View file

@ -576,14 +576,6 @@ IRAM_ATTR void heap_caps_aligned_free(void *ptr)
return; return;
} }
if (esp_ptr_in_diram_iram(ptr)) {
//Memory allocated here is actually allocated in the DRAM alias region and
//cannot be de-allocated as usual. dram_alloc_to_iram_addr stores a pointer to
//the equivalent DRAM address, though; free that.
uint32_t *dramAddrPtr = (uint32_t *)ptr;
ptr = (void *)dramAddrPtr[-1];
}
heap_t *heap = find_containing_heap(ptr); heap_t *heap = find_containing_heap(ptr);
assert(heap != NULL && "free() target pointer is outside heap areas"); assert(heap != NULL && "free() target pointer is outside heap areas");
multi_heap_aligned_free(heap->heap, ptr); multi_heap_aligned_free(heap->heap, ptr);

View file

@ -96,6 +96,10 @@ void *heap_caps_realloc( void *ptr, size_t size, int caps);
* of memory to be returned * of memory to be returned
* *
* @return A pointer to the memory allocated on success, NULL on failure * @return A pointer to the memory allocated on success, NULL on failure
*
* @note Any memory allocated with heaps_caps_aligned_alloc() MUST
* be freed with heap_caps_aligned_free() and CANNOT be passed to free()
*
*/ */
void *heap_caps_aligned_alloc(size_t alignment, size_t size, int caps); void *heap_caps_aligned_alloc(size_t alignment, size_t size, int caps);
@ -110,6 +114,9 @@ void *heap_caps_aligned_alloc(size_t alignment, size_t size, int caps);
* of memory to be returned * of memory to be returned
* *
* @return A pointer to the memory allocated on success, NULL on failure * @return A pointer to the memory allocated on success, NULL on failure
*
* @note Any memory allocated with heap_caps_aligned_calloc() MUST
* be freed with heap_caps_aligned_free() and CANNOT be passed to free()
*/ */
void *heap_caps_aligned_calloc(size_t alignment, size_t n, size_t size, uint32_t caps); void *heap_caps_aligned_calloc(size_t alignment, size_t n, size_t size, uint32_t caps);