cancel
Showing results for 
Search instead for 
Did you mean: 

AzureRTOS NetX STM32F407 Discovery compile errors

Sasha A
Associate II

Hello,

I am trying to create project with STM32F407/429 discovery and AzureRTOS and getting compile errors.

Attached the cubemx project.

The errors appear in KEIL, IAR and CubeIDE.

(I tried same cubemx configuration for STM32H743ZI without any compile errors)

The problem is in the net phy driver (nx_stm32_phy_driver.c). This functions have too many arguments:

HAL_ETH_ReadPHYRegister(&eth_handle, DevAddr, RegAddr, pRegVal)

HAL_ETH_WritePHYRegister(&eth_handle, DevAddr, RegAddr, RegVal)

After deleting DevAddr from those functions, we still have another error:

STM32F4_Discovery_AzureRTOS\STM32F4_Discovery_AzureRTOS.axf: Error: L6218E: Undefined symbol MX_ETH_Init (referred from nx_stm32_eth_driver.o).

STM32F4_Discovery_AzureRTOS\STM32F4_Discovery_AzureRTOS.axf: Error: L6218E: Undefined symbol HAL_ETH_SetMDIOClockRange (referred from nx_stm32_phy_driver.o).

Attached the project files.

Any help will be appreciated.

Thanks

Sasha

6 REPLIES 6

Hello @Sasha A​ ,

Thank you for you contribution.

This issue has been raised internally. I will keep you updated.

BeST Regards,

WAlid

Hello @Sasha A​ ,

For F4 and F7, HAL is modified vs. the HAL available in CubeMx, so you need to use the HAL driver provided in the Pack, not the one available in CubeMX.

Future updates on STM32F7/F4 CubeFW and STM32CubeMX will align the HAL ETH driver to the one used by Azure RTOS Pack.

This is a known limitation and it’s mentioned in Release Notes:

  • User needs to point to the HAL Drivers under X-CUBE-AZRTOS-F7 install path instead of the default location when creating a NetXDuo based project

Please click on Select as Best if my post fully answered your question. This will help other customers with the same issue to find the solution faster!

BeST Regards,

Walid

JAgen.1
Associate

Hi Walid,

thanks for the info ! Unfortunately i don't know how to change this (change the HAL drivers used) in STM32CubeMX. Could you explain it ?

Regards,

Jacques

Hello @JAgen.1​ ,

Just use the Ethernet files located in the following path instead of the files generated by STM32CubeMX:

Path: x-cube-azrtos-f4-main\DriversSTM32F4xx_HAL_Driver\Src

You just have to copy them into your project driver.

BeST Regards,

Walid

Haithem Rahmani
ST Employee

Hi @JAgen.1​,

under the STM32CubeMX "Project Manager" panel select the "Project" Tab and edit the Firmware location as shown below:

0693W00000JMfCDQA1.png 

regards

Haithem.

JAgen.1
Associate

Hi Haithem Rahmani,

thank you for your help ! unfortunately i do not get the line you mention (Firmware location) .

0693W00000JN0qTQAT.pngRegards,

Jacques