FreeRTOS를 배우기 시작했습니다. 그냥 지금은이 코드를 사용하여 인쇄 작업 기능을 만들려고 노력하고 있어요 :freertos vTaskDelete (NULL) 사용 가능한 메모리가 없습니다.
static void vTaskPrint(void *pvParameters) {
taskENTER_CRITICAL();
printf("%s", (char *)pvParameters);
printf("xPortGetFreeHeapSize: %d\r\n", xPortGetFreeHeapSize());
taskEXIT_CRITICAL();
vTaskDelete(NULL);
}
그러나 14 호출 후 :
xTaskCreate(vTaskPrint, (char *)"vTaskPrint", configMINIMAL_STACK_SIZE, (void *)buffer, 3, (xTaskHandle *)NULL);
M3 메모리가 부족 피질 :
************** 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
어떻게 메모리를 비울 수 있습니까?
죄송합니다. 괴롭혔다면 freertos.org에서 포럼의 존재를 알 수 없었습니다. 배우려고하는 작은 예제를 프로그래밍하고 있습니다. 그것은 xPortGetFreeHeapSize() 함수의 프린트를 만드는 더 정중 한 방법 일지는 중요하지 않지만 그 문제를 발견하는 데 도움이됩니다. 메모리가 부족합니다 ... vApplicationIdleHook (void) function하지만 우선 순위에 오류가 있습니다. 이제 모든 것이 잘 작동합니다. 정말 고마워요. – oscargomezf