Hi Nick, I know of one person who worked on making a Network Interface for STM32H7: Thomas Kindler.
I’m attaching his NetworkInterface.c. There is no handling of the PHY yet.
I posted a generic driver for most 100 Mbps PHY’s here
EDIT The above is an old post with old URLs. Nowadays the official repo of FreeRTOS+TCP can be found here. It also contains all network drivers.
Does this work with the existing stm32h7xx_hal_eth files without any modification?
Yes it was developed to be used with the STM32H7xx HAL library, including the ETH module.
For the combined driver for STM32F4/STM32F7, I changed the ETH module, mostly to allow for zero-copying:
Packets are received directly in a NetworkBufferDescriptor_t.
And when sending a packet, DMA will work with the NetworkBufferDescriptor_t as provided by the IP-task.
Hence the driver doesn’t copy any network packet.
I like Thomas’ module because it shows a NetworkInterface.c in it’s simplest form.
It is quite essential though to add initialisation of the PHY, and also it is important to monitor the Link Status of the PHY. Without that it will also work, but only as long as the device is connected to a switch or a router.
If you want, send me an email and I will help you to make this working. My address is hein [at] htibosch [dot] net
No progress has been made on the STM32H7x +TCP driver. I don’t have time to do it, but if anyone wants to develop and test it further, I will help as much as I can. Hein
Unfortunately I got diverted by another task, but I will eventually get back to this. Perhaps by then this network module will be finished, if not I may contact you for some direction.
Ok packet are sent,
At this time the packet is supposed to be DHCP discover… but there is missing information in the packet… it is malformed…
I have LwIP packet vs FreeRTOS+TCP packet here. I use zero copy method, and it work. the descriptor are OK… it’s only the pucEthernetBuffer that is wrong…
Could you please make a PCAP of the DHCP packet from FreeRTOS+TCP? That is easier than looking at binary data.
If it doesn’t let you upload PCAP or PCAPNG, please ZIP it first.
I found the problem this morning, it was not related to FreeRTOS+TCP, but instead it was my buggy LD Script… it prevented the variables from being initialize at startup, so my xDefaultPartUDPPacketHeader array was full of crappy data.
Thank you… at least it was a rubber duck process.
Hi everyone, i’m trying to implement FreeRTOS + TCP using an STM32H7 MCU. I was searching on people who have already implemented it and found this discussion !
I tried to click on the link bringing to the Sourceforge site but it is mentionned that i don’t have the permissions to access.
Is it possible to have a look on the NetworkInterface file please ?
Normally I can find any file from any version, but I can not find a copy of mentioned NetworkInterface_STM32H7.c.
As you know the forum moved from Sourceforge to freertos.org. All posts were copied, but the attachment could not be copied.
I hope that someone who works with FreeRTOS+TCP and STM32H7 responds to this thread.
Actually I haven’t looked up the differences between the EMAC of an STM32F7 and an STM32H7. If they are much the same you can as well use the generic driver that Richard attached.