FreeRTOS'u öğrenmeye başladım. Sadece şimdi ben bu kodla bir yazdırma görevi işlevini yapmaya çalışıyorum:freertos vTaskDelete (NULL) boş bellek yok
static void vTaskPrint(void *pvParameters) {
taskENTER_CRITICAL();
printf("%s", (char *)pvParameters);
printf("xPortGetFreeHeapSize: %d\r\n", xPortGetFreeHeapSize());
taskEXIT_CRITICAL();
vTaskDelete(NULL);
}
Ama 14 çağrıları sonra:
xTaskCreate(vTaskPrint, (char *)"vTaskPrint", configMINIMAL_STACK_SIZE, (void *)buffer, 3, (xTaskHandle *)NULL);
M3 bellek tükendi korteks:
************** 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
Hafızayı nasıl alabilirim?
Üzgünüm Eğer seni rahatsız ettiysem ama forumun varlığını freertos.org adresinden bilmiyordum. Öğrenmeye çalışmak için çok az örnek programlıyorum. Bunun için xPortGetFreeHeapSize() işlevini yazdırmak için daha kibar bir yol olup olmadığını sorun değil, ancak sorunu bulmak için bana yardımcı: Bellek yetersiz çalışıyordu ... Kullanmaya çalışacağız vApplicationIdleHook (void) işlevi ancak öncelikleriyle bir hata yaptım. Şimdi her şey iyi çalışıyor. Çok teşekkür ederim. – oscargomezf