2025-02-07 06:32 PM - edited 2025-02-07 08:44 PM
Hello,
I am creating a new project using STM32CubeIDE to use lwIP with internal MAC for a Nucleo F756 Board. When I enable the Eth peripheral, I can configure the Rx and Tx descriptors. They are placed at the start of SRAM2 (0x2004C000).
Since the CubeIDE uses the gcc compiler which cannot place objects at requested address using only C code. The generated code uses sections created using linker scripts to place objects at those locations.
But the problem here is that CubeIDE is not modifying the linker script file (STM32F756ZGTX_FLASH.ld) to create these sections! So these objects are NOT kept at SRAM2 as expected.
I have manually done the following in the file STM32F756ZGTX_FLASH.ld
2025-02-07 08:50 PM
Hi @avinash_elec, You can Edit STM32F756ZGTX_FLASH.ld file.
/* Specify the memory areas */
MEMORY
{
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 307K
Memory_B1(xrw) : ORIGIN = 0x2004C000, LENGTH = 0xA0
Memory_B2(xrw) : ORIGIN = 0x2004C0A0, LENGTH = 0xA0
}
.ARM.attributes 0 : { *(.ARM.attributes) }
.RxDecripSection (NOLOAD) : { *(.RxDescripSection) } >Memory_B1
.TxDescripSection (NOLOAD) : { *(.TxDescripSection) } >Memory_B2
check examples in repository.
which firmware version you are using?
firmware version STM32Cube_FW_F7_V1.17.0 working with CMSIS1.
2025-02-07 10:08 PM
I am using version
STM32Cube_FW_F7_V1.17.2
I have choosen CMSIS V2 without any compile or runtime errors.
2025-02-07 11:49 PM
try with CMSIS V1 it's Working
take ref of repository codes and check lwipopt.h file configure parameters properly
It's Working
2025-02-07 11:59 PM
My personal suggestion: drop LwIP and move to NetXDuo as fa as you are at the start of a new project. Even if some examples with LwIP do work, NetXDuo allow to get solutions that are much more reliable. Try it, and evaluate stability and resilience to harsh environment.
2025-02-08 03:24 AM
Thank you for the suggestion Mr. mbarg1.