Forum: Mikrocontroller und Digitale Elektronik STM32F4+FreeRTOS+lwip


von C. W. (chefkoch)


Lesenswert?

Hallo *,

ich versuche gerade die im Betreff genante Kombination ans Rennen zu 
bringen. Prinzipiell geht es aber... Erstmal meine Vorgehensweise:

1. In der STM32CubeIDE die Hardware Konfigurieren und die generierung 
der 3 Handler die Freertos braucht abwählen.
2. Die aktuellen Dateien von FreeRTOS ins Projekt packen. Dabei die 
Freertosconfig.h aus dem entsprechenden Demo benutzen.
3. Ein C-File mit den benötigten Hooks einbinden
4. cmsis_os-Files aus dem entsprechenden Cube-Paket ins Projekt packen
5. lwip-Files (original) ins Projekt packen
6. lwip/system-Verzeichnis aus der Cube zum Projekt
7. Aus einer passenden Beispielapplikation aus dem Cube-Paket die 
entsprechenden Files/Funktionen ins Projekt kopieren.
8. Interrupthändler (eth) anpassen

Falls jetzt jemand meckern möchte - es funktioniert soweit!!! Der 
Controller ist anpingbar.

Jetzt versuche ich vom lwip den netconn http-Server dazu zu packen und 
nun das Spannende:

STM32F747-nucleo - Ping OK HTTP-Server OK
STM32F746-nucleo - Ping OK HTTP-Server OK
STM32F429ZI-nucleo - Ping OK HTTP-Server OK
STM32F407VET6 black board -Ping OK HTTP-Server bleibt im 
low_level_output hängen und blockiert den ganzen lwip

Hat jemand genau diese Problem schon gehabt? Es gibt/gab einen Bug 
betreffend den F4 welcher aber m.E. dann beim 429 genauso wie beim 407 
auftauchen sollte.

von J. S. (jojos)


Lesenswert?

Wenn man schon die CubeIDE benutzt dann kann man auch FreeRTOS und lwip 
über den Codegenerator integrieren lassen, der passt dann auch einige 
Einstellungen an. Für F4 und F7 sollte das gehen, beim H7 ist da einiges 
an Handarbeit nötig und der generierte Code ist trotzdem schlecht.

von Stefan F. (Gast)


Lesenswert?

Ich habe ein Dejavu.

Hatten hier nicht schon mal Leute berichtet, dass die Kombination aus 
dem Betreff seit Jahren nicht richtig funktioniert?

von J. S. (jojos)


Lesenswert?

Welcher Speicher wird beim F4 genutzt? Wenn aus dem DTCM 
gesendet/empfangen werden soll dann funktioniert das nicht mit DMA.

von C. W. (chefkoch)


Lesenswert?

Kann ich das irgendwo ersehen? Die zu sendenden Daten sollen bei 
0x20008d86 liegen.

von J. S. (jojos)


Lesenswert?

Im Linkerscript stehen am Anfang die Speicherbereiche.

Edit:
Das CCM liegt ab 0x1000 0000, das sollte also nicht das Problem sein.

: Bearbeitet durch User
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.