Good day! I am trying to master the work with Ethernet on stm32. And without any external SPI plug-in chips. I use the Nucleo board with the STM32F767ZIT pebble installed on it. For writing programs, I use the CubeMX and Keil uVision 5 bundle, which is widely used by beginners. The problem begins almost from the very beginning. Initialization in CubeMX I turn on CAN, UART, Ethernet in a cube, I configure clocking, I do not forget to connect the LWIP library itself. I collect the project. I open the keil and collect the project already there. But it was not there. Keil gives such strange errors.

767-2\767-2.axf: Error: L6218E: Undefined symbol sio_open (referred from slipif.o). 767-2\767-2.axf: Error: L6218E: Undefined symbol sio_send (referred from slipif.o). 767-2\767-2.axf: Error: L6218E: Undefined symbol sio_tryread (referred from slipif.o). 

As I understand it, the fact is that some files from the LWIP library have not connected. But the thing is, I tried the same thing on another pebble, namely STM32f107RC, and the initial project compiled there without any problems. Although, as I understand it, the files are the same. Question: how to revive the ethernet with LWIP on stm32f767zit?

  • one
    If you do not use SLIP (Serial Line IP) protocol in your project, remove its implementation from the project ( LwIP\src\include\netif\slipif.h and LwIP\src\netif\slipif.c ). How to do this, I unfortunately will not tell you, because I do not use Keil uVision. If you use it, then you yourself will have to implement all the functions declared in the LwIP\src\include\lwip\sio.h header file for STM32, as st-nicks didn’t do such an implementation in STM32Cube. - Embedder
  • one
    As for STM32F1, there is used an older version of lwIP, in which SLIP protocol is disabled by default. This is configured via #define LWIP_HAVE_SLIPIF in the src\include\lwip\opt.h header file. In the implementation of STM32Cube for STM32F7 is a new version of lwIP, in which this setting is missing. - Embedder
  • Does this controller have a built-in PHY? Usually, the connection of an external chip is still required, and they work via the MII or RMII interface. I do not see you this interface. - maestro
  • Thanks a lot for the answers. I just deleted the slipif.c and slipif.h files from the project in Keil and the program at least compiled. As regards the suspended PHY, it is unambiguously present, and specifically I use RMII. I think I still have a question related to working with ETHERNET on stm32 and, if you do not mind, I would ask them on this page. - Nowsan
  • @Nowsan, better create a new question. - maestro

0