]> granicus.if.org Git - esp-idf/commitdiff
freertos: Expose TCB & Stack memory capabilities as macro, fix task delete test
authorAngus Gratton <angus@espressif.com>
Mon, 20 Aug 2018 06:11:35 +0000 (16:11 +1000)
committerAngus Gratton <gus@projectgus.com>
Tue, 21 Aug 2018 02:19:33 +0000 (12:19 +1000)
Test was failing if task was allocating TCB & Stack memory from DMA only pool
which is not MALLOC_CAP_DEFAULT.

components/freertos/include/freertos/portmacro.h
components/freertos/test/test_freertos_task_delete.c

index 6b98b826906dfef392639c2e640a5cd6ea322687..48b8993957e0f8b2f3241df3d1537354e6747e7a 100644 (file)
@@ -258,8 +258,11 @@ static inline unsigned portENTER_CRITICAL_NESTED() {
 
 //Because the ROM routines don't necessarily handle a stack in external RAM correctly, we force
 //the stack memory to always be internal.
-#define pvPortMallocTcbMem(size) heap_caps_malloc(size, MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT)
-#define pvPortMallocStackMem(size)  heap_caps_malloc(size, MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT)
+#define portTcbMemoryCaps (MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT)
+#define portStackMemoryCaps (MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT)
+
+#define pvPortMallocTcbMem(size) heap_caps_malloc(size, portTcbMemoryCaps)
+#define pvPortMallocStackMem(size)  heap_caps_malloc(size, portStackMemoryCaps)
 
 //xTaskCreateStatic uses these functions to check incoming memory.
 #define portVALID_TCB_MEM(ptr) (esp_ptr_internal(ptr) && esp_ptr_byte_accessible(ptr))
index 7c3394cbe6b91a811453b062b581e8cd63518c82..348e788eed9bc9baef41ad782971c33530ffc46b 100644 (file)
@@ -23,7 +23,8 @@
 
 #define NO_OF_TSKS  3
 #define DELAY_TICKS 2
-#define HEAP_CAPS   (MALLOC_CAP_INTERNAL|MALLOC_CAP_DEFAULT)
+/* Caps of all memory which is allocated from when a task is created */
+#define HEAP_CAPS   (portTcbMemoryCaps | portStackMemoryCaps)
 
 #define DELAY_US_ITERATIONS    1000