Forum: Mikrocontroller und Digitale Elektronik Nucleo-F767ZI


von Micha (michael_schwaer)


Lesenswert?

Hallo,

ich habe ein Nucleo-F767ZI Board und möchte mit diesem die 
Ethernet-Funktion OHNE Betriebssystem nutzen. Die gewünschte Funktion 
ist wie folgt:
1) mit IP-Adresse verbinden
2) Get-Anfrage senden
3) Antwort empfangen

Ich habe bereits Chat GPT bemüht und habe alle Pfade angepasst und die 
erforderlichen C-Dateien ins Projekt eingebunden, die vom ST kommen. 
Soweit compiliert es noch.

Aber sobald ich Funktionen hinzufüge, die LWIP_NETCONN oder LWIP_SOCKET 
nutzen, bekomme ich Compilerfehler, die ich irgendwie nicht wegbekomme. 
Irgendwie drehe ich mich im Kreis. Und LWIP_NETCONN und LWIP_SOCKET muss 
ich immer im Quellcode neu auf 1 setzen, wenn ich mit CubeMX neue Daten 
generiere. Ich habe nicht herausgefunden, wo man das im Cube einstellt. 
Scheint es bei meinem CubeMX 6.9.1 nicht mehr zu geben und steht 
standardmäßig auf 0.

Ich benutze CubeMx und Segger Embedded Studio. Gibt es ein 
Beispielprogramm von ST, wo so was in der Art realisiert wurde?

Grüße Micha

von Rainer W. (rawi)


Lesenswert?

Micha schrieb:
> Aber sobald ich Funktionen hinzufüge, die LWIP_NETCONN oder LWIP_SOCKET
> nutzen, bekomme ich Compilerfehler

Oft beinhalten die Fehlermeldungen zu den Compilerfehlern einen Hinweis 
auf die Fehlerursache. Hast du die einmal gelesen?

von Wastl (hartundweichware)


Lesenswert?

Micha schrieb:
> Aber sobald ich Funktionen hinzufüge, die LWIP_NETCONN oder LWIP_SOCKET
> nutzen, bekomme ich Compilerfehler, die ich irgendwie nicht wegbekomme.

Zeige diese Fehlermeldungen.

von Micha (michael_schwaer)


Angehängte Dateien:

Lesenswert?

Der Linker findet irgendwelche Namen beim Compilieren nicht (Strukturen, 
Funktionen).

Durch Verändern von Compileswitches kam ich der Sache nach und nach 
näher z.B.:
#define LWIP_SOCKET 1
#define LWIP_MPU_COMPATIBLE 1
#define NO_SYS  0

Aber dann habe ich abgebrochen, denn NO_SYS = 0 bedeutet ja, dass ich 
ein RTOS haben muss. Und das will ich ja eben nicht haben.

ich habe den Sourcecode angehängt.
In der Datei test.c steht Quellcode für die Funktion, den ich über Chat 
GPT bekommen habe. Ist aber aktuell auskommentiert, da ich zu dem 
Zeitpunkt eine andere Variante aus Youtube probiert habe.

von Johannes (zuberjo)


Lesenswert?

Wenn es wirklich mühelos und einfach sein soll, schau dir mal den 
Mongoose IP Stack an. Die Implementierung von LWIP seitens STM zusammen 
mit der HAL ist echt ein gefrickel. Beim F7 etwas besser als beim H7 
aber kein Vergleich zum Mongoose Stack. ControllersTech auf Youtube hat 
eine gute Erklärung dazu gebracht, kann ich jedem empfehlen der Ethernet 
mit einem STM Cortex M7 umsetzen will

von Jens B. (dasjens)


Lesenswert?

Micha schrieb:
> Hallo,

> Ich habe bereits Chat GPT bemüht und habe alle Pfade angepasst und die
> erforderlichen C-Dateien ins Projekt eingebunden, die vom ST kommen.
> Soweit compiliert es noch.


Wie wäre es mit selbst lernen, RTFM und co.?
Einen Chatbot zu fragen hilft nur wenig. Für Grundlagen gehts vlt.
Aber bei falschen Antworten stehst Du auch wieder aufm Schlauch.

von Wastl (hartundweichware)


Lesenswert?

Micha schrieb:
> ich habe den Sourcecode angehängt.

Das hilft nichts, nicht jeder kann dein Projekt compilieren, eher
eine grössere Minderheit.

Wastl schrieb:
> Zeige diese Fehlermeldungen.

von Micha (michael_schwaer)


Angehängte Dateien:

Lesenswert?

Johannes schrieb:
> Wenn es wirklich mühelos und einfach sein soll, schau dir mal den
> Mongoose IP Stack an. Die Implementierung von LWIP seitens STM zusammen
> mit der HAL ist echt ein gefrickel. Beim F7 etwas besser als beim H7
> aber kein Vergleich zum Mongoose Stack. ControllersTech auf Youtube hat
> eine gute Erklärung dazu gebracht, kann ich jedem empfehlen der Ethernet
> mit einem STM Cortex M7 umsetzen will

Danke für den Tipp.
Der "2-minute integration guide" 
https://mongoose.ws/documentation/#user-guide  hört sich gut an, aber 
beim Compilieren gibt es etliche Fehler. Mann muss noch einige includes 
angeben, das war noch recht einfach.

Man muss auch noch eine Datei "mongoose_config.h" anlegen und hoffen, 
dass die Einträge dann korrekt sind.

Es gibt nun "nur" noch 145 Fehler... In 2 Minuten ist das definitiv 
nicht lauffähig. Ich denke eher 2 Stunden oder gar 2 Tage.

: Bearbeitet durch User
von Johannes (zuberjo)


Lesenswert?

Also bei mir war das in der STMCubeIDE innerhalb von ein paar Minuten am 
laufen. C und h file hinzugefügt, diese in dem Compilerpfad angegeben, 
ein paar Configs gesetzt und lauffähig war es. Gibt auch bei 
ControllersTech direkt Beispielprogramme dafür. Hat mir nicht so viel 
geholfen, da ich was anderes damit gemacht habe, aber für die Basics 
wars gut

von Micha (michael_schwaer)


Lesenswert?

OK, ich schaue mir mal 
https://controllerstech.com/stm32-ethernet-using-mongoose-part-1/ an. 
Habe nur heute keine Zeit mehr.

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.