From 21c25c86fe44822260e0168fbf286e9b9c665e24 Mon Sep 17 00:00:00 2001 From: Samuel Sadok Date: Mon, 12 Mar 2018 17:23:55 -0700 Subject: [PATCH] use core coupled memory for the FreeRTOS heap --- Firmware/Board/v3.3/Inc/FreeRTOSConfig.h | 3 ++- Firmware/Board/v3.3/Src/freertos.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Firmware/Board/v3.3/Inc/FreeRTOSConfig.h b/Firmware/Board/v3.3/Inc/FreeRTOSConfig.h index 0028db5d..93f9b39d 100644 --- a/Firmware/Board/v3.3/Inc/FreeRTOSConfig.h +++ b/Firmware/Board/v3.3/Inc/FreeRTOSConfig.h @@ -102,7 +102,8 @@ #define configTICK_RATE_HZ ((TickType_t)1000) #define configMAX_PRIORITIES ( 7 ) #define configMINIMAL_STACK_SIZE ((uint16_t)128) -#define configTOTAL_HEAP_SIZE ((size_t)15360) +#define configTOTAL_HEAP_SIZE ((size_t)65536) // FreeRTOS heap takes up the entire 64kB core-coupled memory +#define configAPPLICATION_ALLOCATED_HEAP 1 #define configMAX_TASK_NAME_LEN ( 16 ) #define configUSE_16_BIT_TICKS 0 #define configUSE_MUTEXES 1 diff --git a/Firmware/Board/v3.3/Src/freertos.c b/Firmware/Board/v3.3/Src/freertos.c index 7794558c..e72627bf 100644 --- a/Firmware/Board/v3.3/Src/freertos.c +++ b/Firmware/Board/v3.3/Src/freertos.c @@ -70,6 +70,10 @@ osSemaphoreId sem_usb_irq; osThreadId thread_motor_0; osThreadId thread_motor_1; osThreadId thread_cmd_parse; + +// Place FreeRTOS heap in core coupled memory for better performance +__attribute__((section(".ccmram"))) +uint8_t ucHeap[configTOTAL_HEAP_SIZE]; /* USER CODE END Variables */ /* Function prototypes -------------------------------------------------------*/