Search code examples
ctcpstm32lwip

declared implicitly some func STM32 LWIP


I have the following problem: there is a version of LWIP v.1.11.2 that is suitable for my project, after I installed it from github and selected the desired version in CubeMX and generated the code, I saw the following errors:

eth190\eth190.axf: Error: L6218E: Undefined symbol HAL_ETH_BuildRxDescriptors (referred from ethernetif.o).
eth190\eth190.axf: Error: L6218E: Undefined symbol HAL_ETH_DescAssignMemory (referred from ethernetif.o).
eth190\eth190.axf: Error: L6218E: Undefined symbol HAL_ETH_GetRxDataBuffer (referred from ethernetif.o).
eth190\eth190.axf: Error: L6218E: Undefined symbol HAL_ETH_GetRxDataLength (referred from ethernetif.o).
eth190\eth190.axf: Error: L6218E: Undefined symbol HAL_ETH_IsRxDataAvailable (referred from ethernetif.o).

and warnings:

../LWIP/Target/ethernetif.c(308): warning:  #223-D: function "HAL_ETH_DescAssignMemory" declared implicitly
      HAL_ETH_DescAssignMemory(&heth, idx, Rx_Buff[idx], NULL);
../LWIP/Target/ethernetif.c(412): warning:  #223-D: function "HAL_ETH_IsRxDataAvailable" declared implicitly
    if (HAL_ETH_IsRxDataAvailable(&heth))
../LWIP/Target/ethernetif.c(414): warning:  #223-D: function "HAL_ETH_GetRxDataBuffer" declared implicitly
      HAL_ETH_GetRxDataBuffer(&heth, RxBuff);
../LWIP/Target/ethernetif.c(415): warning:  #223-D: function "HAL_ETH_GetRxDataLength" declared implicitly
      HAL_ETH_GetRxDataLength(&heth, &framelength);
../LWIP/Target/ethernetif.c(418): warning:  #223-D: function "HAL_ETH_BuildRxDescriptors" declared implicitly
      HAL_ETH_BuildRxDescriptors(&heth);
../LWIP/Target/ethernetif.c: 5 warnings, 0 errors

inside the generated code there are functions that the compiler does not know about, tell me I need to take the versions of the HAL library myself in which these functions are defined / there is some other solution code ref:

if (HAL_ETH_IsRxDataAvailable(&heth))
  {
    HAL_ETH_GetRxDataBuffer(&heth, RxBuff);
    HAL_ETH_GetRxDataLength(&heth, &framelength);

    /* Build Rx descriptor to be ready for next data reception */
    HAL_ETH_BuildRxDescriptors(&heth);

all this funk declared implicitly

I tried to find the definition of these functions in other versions of HAL, but it raised more questions than answers.


Solution

  • Thanks everyone, all I had to do was download the latest version of Cybex and it automatically generated the functions I needed. My latest version of Cybex is 6.12.0 The version on which the problem occurred - 6.3.0 Solved this issue by simply updating to the current version of Cube.