STM32F769I EVAL Ethernet Not Resolving on Network


I'm using an STM32F769I EVAL board to test a web server implementation in Keil RTX. I have the project set up to use a the STM32CubeMX low-level drivers and the higher-level Keil PHY and EMAC drivers (the PHY_DP83848C and EMAC_STM32F7xx drivers, part of the STM32F7xx_DFP PACK in Keil) on top of those drivers.

The code I have was working fine until I decided to fix an issue I was having on another Ethernet project. When a project is started from CubeMX rather than Keil, I have been running into an issue in the EMAC_STM32F7xx file where two structs (TX_Desc and RX_Desc) are being passed to a function called SCB_InvalidateDCache_by_Addr. The function is not looking for these structs but uint32_t pointers instead. This was causing a compilation error. NOTE: This function was implemented by Keil in their driver and not implemented by me. 

I decided to try and fix this issue by editing the EMAC_STM32F7xx file and casting the structs being passed to the function to uint32_t pointers instead. This made the compilation errors go away, but when I uploaded the code to my board it no longer was recognized on the network. All the network configurations were still the same, it just wasn't being recognized by my router. I can still ping the router from the board, but the router isn't able to resolve the requested static IP address on the network.

I tried reverting the EMAC_STM32F7xx file back to what it was before I edited it, but the issue still persists. I even reinstalled the PACK (the STM32F7xx_DFP PACK), recompiled my project, and re-uploaded it to the board, but I still have no luck. The board will not resolve on the network.

I made sure I am calling the netInitialize() function from my code as well.

As a note, I am using IPv4, with a subnet mask of I am using version 5.06 of the ARMCC compiler, version 6.0.1 of STM32CubeMX, version 2.14.0 of the STM32F7xx_DFP PACK, and MDK-ARM Pro version 5.33.0. 

My runtime configuration and driver set up are given in the screen shots below along with the function calls I am referring to in the EMAC-STM32F7xx file.

Any help would be very much appreciated.


More questions in this forum