Generating STM32F429ZITx - Nucleo-F429ZI with ETH + LwIP using STM32CubeMX Version 6.7.0
I found some minor issues when generating a new skeleton project for STM32F429ZITx - Nucleo-F429ZI + LwIP
1: If you enable multicast + IPv6 protocol:
heth.Instance->MACPFR |= ETH_MACPFR_PM;instead of
heth.Instance->MACFFR |= ETH_MACFFR_PM; /* notice the double F inside MACFFR */2: The entire interface is taken up/down together with linkup/linkdown. In LwIP 2.x this is wrong. The interface should always be up, else DHCP will assert during init and never recover.
ethernet_link_check_state() should NOT contain netif_set_down(netif); and netif_set_up(netif);. Instead there should be a single netif_set_up(&gnetif); in MX_LWIP_Init() after netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, ðernet_input);
3: The configuration causes some few printf() calls to be generated, but the skeleton Keil project does not assign printf/stdout/stderr, so execution halts due to hardcoded breakpoints during systeminit before main() due to the stub libc being "missconfigured". Either ensure that debug printf from assertions are not generated or stub printf/stdout/stderr code needs to be generated (most common will probably be to use ITM/EventRecorder built into Keil)
