Has anyone had recent experience with LWIP on STM32H7?
Success or still lots of trouble?
Can be done but there are bugs and quirks:
- ST HAL only allows handling of rx descriptors of a single packet at a time. Most likely the packet must be copied to ram in order to free up dma descriptors for more packets.You cannot afford to wait until LwIP frees up the rx descriptor (the pbuf holding reference to it).
- Most example code I've seen frees up the rx dma descriptor too early while the packet is still in use.
- H7 has many SRAMs and many different caching can be applied via MPU. It takes effort to see from which memory packets are actually sent. For instance, ICMP echo reply might be sent from rx memory if LwIP decides to reuse the memory of incoming ping for pong. This makes it difficult clean cache and invalidate cache.