I'm starting to learn FreeRTOS. Just now I am trying to make the print job function using this code:
static void vTaskPrint(void *pvParameters) { taskENTER_CRITICAL(); printf("%s", (char *)pvParameters); printf("xPortGetFreeHeapSize: %d\r\n", xPortGetFreeHeapSize()); taskEXIT_CRITICAL(); vTaskDelete(NULL); }
But after 14 calls:
xTaskCreate(vTaskPrint, (char *)"vTaskPrint", configMINIMAL_STACK_SIZE, (void *)buffer, 3, (xTaskHandle *)NULL);
In cortex M3 memory ends:
************** TEST GPIO & LEDS FREERTOS OPEN103Z EVB ************** vTaskLeds xPortGetFreeHeapSize: 7832 vTaskReadKeys xPortGetFreeHeapSize: 7232 [INFO] vTaskPrint created successful Key pressed RIGHT xPortGetFreeHeapSize: 6632 [INFO] vTaskPrint created successful Key pressed CENTER KEY xPortGetFreeHeapSize: 6032 [INFO] vTaskPrint created successful Key pressed RIGHT xPortGetFreeHeapSize: 5432 [INFO] vTaskPrint created successful Key pressed LEFT xPortGetFreeHeapSize: 4832 [INFO] vTaskPrint created successful Key pressed RIGHT xPortGetFreeHeapSize: 4232 [INFO] vTaskPrint created successful Key pressed LEFT xPortGetFreeHeapSize: 3632 [INFO] vTaskPrint created successful Key pressed RIGHT xPortGetFreeHeapSize: 3032 [INFO] vTaskPrint created successful Key pressed LEFT xPortGetFreeHeapSize: 2432 [INFO] vTaskPrint created successful Key pressed RIGHT xPortGetFreeHeapSize: 1832 [INFO] vTaskPrint created successful Key pressed LEFT xPortGetFreeHeapSize: 1232 [INFO] vTaskPrint created successful Key pressed RIGHT xPortGetFreeHeapSize: 632 [INFO] vTaskPrint created successful Key pressed LEFT xPortGetFreeHeapSize: 32 [INFO] vTaskPrint created successful [ERROR] vTaskPrint not created successful
How can I free memory?
source share