mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
heap/tests: make IRAM allocation size divisible by 4
heap_caps_malloc will fail to poison a block in IRAM with size not divisible by 4. The proper fix will be to make poisoning code smarter, or to disallow allocations from IRAM with size not aligned by 4.
This commit is contained in:
parent
4f2fe93bc1
commit
9a2583122c
@ -43,7 +43,7 @@ TEST_CASE("Capabilities allocator test", "[heap]")
|
|||||||
//the following gives size of IRAM-only (not D/IRAM) memory.
|
//the following gives size of IRAM-only (not D/IRAM) memory.
|
||||||
size_t free_iram = heap_caps_get_free_size(MALLOC_CAP_INTERNAL) -
|
size_t free_iram = heap_caps_get_free_size(MALLOC_CAP_INTERNAL) -
|
||||||
heap_caps_get_free_size(MALLOC_CAP_8BIT | MALLOC_CAP_INTERNAL);
|
heap_caps_get_free_size(MALLOC_CAP_8BIT | MALLOC_CAP_INTERNAL);
|
||||||
size_t alloc32 = MIN(free_iram / 2, 10*1024);
|
size_t alloc32 = MIN(free_iram / 2, 10*1024) & (~3);
|
||||||
printf("Freeing; allocating %u bytes of 32K-capable RAM\n", alloc32);
|
printf("Freeing; allocating %u bytes of 32K-capable RAM\n", alloc32);
|
||||||
m1 = heap_caps_malloc(alloc32, MALLOC_CAP_32BIT);
|
m1 = heap_caps_malloc(alloc32, MALLOC_CAP_32BIT);
|
||||||
printf("--> %p\n", m1);
|
printf("--> %p\n", m1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user