Hello,
I used the STM32_Nucleo_H723ZG_FreeRTOS_TCP project as starting point to make a TCP server on the base of the NUCLEO-H743ZI2 board. I was able to compile it and run in STM32Cube IDE 1.18.1. After that I decided to try to change MCU STM32H723ZGT6 to STM32H743ZIT6 in the project files. I changed MCU in all project’s configuration files by hand, replaced *.ld and *.s files etc - so the project was working nicely after all this manual corrections.
But as the last step I decided to try to open in IDE the ioc file. It asked me to migrate to a new version of CubeMX- after that I see the MCU drawing and I can change settings. After that I close ioc file and some files in the project automatically are regenerating - I see it as the contents of e.g. main.c changing. But after that I can’t build my project anymore.
The beginning of errors looks next:
C:/Users/irek/STM32CubeIDE/workspace_1.18.0/CmdBoard/Libraries/FreeRTOS-Plus-TCP/source/portable/NetworkInterface/STM32Hxx/NetworkInterface.c:64:6: error: #error stm32hxx_hal_eth.h is possibly not included
64 | #error stm32hxx_hal_eth.h is possibly not included
| ^~~~~
C:/Users/irek/STM32CubeIDE/workspace_1.18.0/CmdBoard/Libraries/FreeRTOS-Plus-TCP/source/portable/NetworkInterface/STM32Hxx/NetworkInterface.c:111:8: error: unknown type name ‘ETH_HandleTypeDef’
111 | static ETH_HandleTypeDef xEthHandle;
| ^~~~~~~~~~~~~~~~~
The first error follows me into the file workspace_1.18.0\CmdBoard\Libraries\FreeRTOS-Plus-TCP\source\portable\NetworkInterface\STM32Hxx\NetworkInterface.c
which is very deep inside FreeRTOS+TCP. The code is next
#ifndef STM32Hxx_HAL_ETH_H
/*
- The ST HAL library provides stm32h7xx_hal_eth.{c,h}.
- This FreeRTOS+TCP driver renamed these files to stm32hxx_hal_eth.{c,h}
- by removing the ‘7’.
- Please make sure that “portable/NetworkInterface/STM32Hxx” is included
- in the include paths earlier than “STM32H7xx_HAL_Driver/Inc”.
- and also make sure that you have defined ‘HAL_ETH_MODULE_ENABLED’
- in your copy of “stm32h7xx_hal_conf”.
*/
#error stm32hxx_hal_eth.h is possibly not included
#endif
The STM32Hxx_HAL_ETH_H defined in the stm32hxx_hal_eth.h which is in the same folder.
So I really do not understand why ioc file kills the link with the FreeRTOS+TCP.
Just raw idea. In ioc file I left Ethernet connection disabled (as it was in the original project). Could it be that ioc disables Network adapter in the FreeRTOS+TCP? But how? And how to correct it?
Thank you in advance!