Moin! Ich verwende ein STM32F767 Nucleo Board und will dort einen Miniserver drauf laufen lassen. Allerdings scheitere ich schon an der Implementierung von lwIP und FreeRTOS auf meinen uC. Der Code lässt sich soweit erzeugen, keine Fehlermeldungen. Allerdings geht der uC immer in den MemManage Handler. Gibt es bekannte Probleme bei der Verwendung von lwIP und FreeRTOS? Das Programm springt in den MemManage Handler, sobald delay(1) im default Task ausgeführt wird. Wie debugge ich am besten einen MemManage HAndler? Muss ich im einfachsten Fall einfach die Zugriffsrechte der MPU auf den verwendeten Speicher ändern? Aktuell bin ich leider etwas ratlos wie ich hier weiter mache, da meine Erfahrungen in diesem Bereich noch etwas begrenzt sind. Zum besseren Verständnis habe ich mal die .ioc Datei angehangen. Über Unterstützung würde ich mich sehr freuen! Grüße, Michi
main.c: void StartDefaultTask(void *argument) { /* init code for LWIP */ //Problem: //MX_LWIP_Init(); /* USER CODE BEGIN 5 */ /* Infinite loop */ for(;;) { HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin); osDelay(200); } /* USER CODE END 5 */ } Das Problem liegt bei lwip. FreeRTOS ist bis dahin in Ordnung.
Ich meine natürlich nicht bei lwip, sondern bei der Konfiguration.
/* Definitions for defaultTask */ osThreadId_t defaultTaskHandle; const osThreadAttr_t defaultTask_attributes = { .name = "defaultTask", .stack_size = 1024 * 4, .priority = (osPriority_t) osPriorityNormal, }; Erhöhung der .stack_size = 1024 * 4, hat funktioniert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.