Forum: Mikrocontroller und Digitale Elektronik STM32F429ZI + FreeRTOS + LWIP MinExample


von Michi (Gast)


Angehängte Dateien:

Lesenswert?

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

von pegel (Gast)


Lesenswert?

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.

von pegel (Gast)


Lesenswert?

Ich meine natürlich nicht bei lwip, sondern bei der Konfiguration.

von pegel (Gast)


Lesenswert?

/* 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
Noch kein Account? Hier anmelden.