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 -------------------------------------------------------*/