0

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.

1
  • Here is a post that discusses changes to HAL ETH, it's recent (this year), so it may be relevant (your LWIP and HAL could be incompatible versions, it seems HAL ETH had some rework in FW_F4 V1.27). Take a look, at first glance this looks relevant to me: community.st.com/t5/stm32-mcus-embedded-software/… Commented Aug 13, 2024 at 8:03

1 Answer 1

0

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.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.