STM32F429ZI + FreeRTOS + LWIP MinExample

Gast #7192013
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
Angehängte Dateien:
Gast #7192295
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.
Gast #7192337
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren