cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 LWIP FreeRTOS

JDWBE
Associate

Hello

This is my first post on the forum, always a happy reader in the past and happy STM32 user as well!

Now I want to go a bit further then the standard IO and control. I want to implement LWIP + FreeRTOS with a STM32F7. And yes, the fresh generated code doesn’t work out the BOX, surprise. After debugging and reading a lot of posts I was able to get a ping from my bord! Yes!

Well after creating 2 threads and try to do some UDP socket handling, it was again broken! (Only setup the connection, no traffic yet.)

What is the status for ST to support LWIP on there hardware? When I search on the forum my PC is exploding how many topics are created and bug reports are made some of them already years ago without any solution or implementation in newer releases from Cube MX.

What is the roadmap, ST + LWIP (+ FreeRTOS)? I know your goal is to sell silicon, but if the software is well written and the basic stuff is working out of the box, you will sell more silicon!

1 REPLY 1
STea
ST Employee

Hello @JDWBE ,

First of all, thank you for your interest in the ST community and ecosystem as well.

LwIP + FreeTOS are well supported from ST for the STM32F7 series some products may have support for the azure ThreadX and NetxDuo middleware as well such as STM32H5 series for example. you can find support for both middleware which is the case inSTM32F7 series with X-cube_azur-F7 package. 
you can find examples implementing LwIP and FreeRTOS for STM32F7 in CubeF7 firmware package.

CubeMX is not supposed to generate out of the Box working examples especially for Ethernet communication applications, which require some development effort from the user.

regarding problems and threads with no answers regarding this topic and old threads it is worth mentioning that a lot of fixes and upgrades were implemented based on them in CubeF7 firmware package.

my recommendations for you are either take an already developed examples and modify it as a starting point or you can follow this article with some changes to memory applied to your specific MCU.
modifications form the generated code from MX are application related to memory management descriptor placement ... as described in the linked article. 
if you want to get a better understanding of the Ethernet peripheral way of working you can refer to this article which implement a BareMetal example without middleware layers.
if you have any problems with you project and need support implementing a UDP server you can share it and I'll be happy to help you out as well.
Regards

 

 

 

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.