cancel
Showing results for 
Search instead for 
Did you mean: 

data cache issue for ethernet in stm32h753 (Assertion "pbuf_free: p->ref > 0" failed at line 753)

Rahul3
Associate

I have read quite a few threads about ethernet on the H7, along with several internet posts. 

I've followed this guide:

https://community.st.com/s/article/How-to-create-project-for-STM32H7-with-Ethernet-and-LwIP-stack-working?t=1679361727348

As well as this guide:

https://github.com/AnielShri/STM32H745_Ethernet/blob/master/Documentation/lwip_nortos.md

They are similar, with some slight differences with the MPU cache settings.

My first test is just basic ICMP - which doesn't work. That is, until I comment out this line:

SCB_EnableDCache();

So, of course, that implies something with the data cache, and memory locations.

So, my settings looks like these:

Rahul3_0-1721488939196.png

 

LWIP settings:

Rahul3_1-1721488938984.png

 

 

I've added the following to the linker script:

  /* Modification start */
  .lwip_sec (NOLOAD) : {
    . = ABSOLUTE(0x30040000);
    *(.RxDecripSection) 
    
    . = ABSOLUTE(0x30040060);
    *(.TxDecripSection)
    
    . = ABSOLUTE(0x30040200);
    *(.RxArraySection) 
  } >RAM_D2

Sometimes, I get this error upon each ICMP packet that is received:

 Assertion "pbuf_free: p->ref > 0" failed at line 753 in ../Middlewares/Third_Party/LwIP/src/core/pbuf.c

Again, it goes away when I disable the dcache. I'm not sure what else to try. I must have something not quite right.

Thanks.

1 ACCEPTED SOLUTION

Accepted Solutions
mƎALLEm
ST Employee

Hello,

Probably an issue in the LWIP heap memory region:

I suggest you to check again the MPU config (Bufferability, Sharability, Cachability and TEX level) as described in https://community.st.com/s/article/How-to-create-project-for-STM32H7-with-Ethernet-and-LwIP-stack-working?t=1679361727348:

95.png

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

View solution in original post

1 REPLY 1
mƎALLEm
ST Employee

Hello,

Probably an issue in the LWIP heap memory region:

I suggest you to check again the MPU config (Bufferability, Sharability, Cachability and TEX level) as described in https://community.st.com/s/article/How-to-create-project-for-STM32H7-with-Ethernet-and-LwIP-stack-working?t=1679361727348:

95.png

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.