cancel
Showing results for 
Search instead for 
Did you mean: 

LwIP with SBSFU

Arno1
Senior

Hello,

I'm trying to get LwIP working on a STM32F769I-DISC1 board but with the SBSFU bootloader.

I started out with a basic project, generated with CubeMx, that sends UDP packets every 500ms (no operating system, just LwIP Raw API). This works, the board gets an IP address and I receive the data.

I then changed the linker script and project settings to work with the X-Cube-SBSFU bootloader which builds and starts up but will not get an IP address. It just keeps waiting for an address.

The changes I made to run with the bootloader are as follows:

  • Changed STM32F769NIHx_FLASH.ld as attached (STM32F769NIHx_FLASH_bootloaded.ld)
  • added includes to gcc settings in AC6 Systems Workbench
    • Middlewares/ST/STM32_Secure_Engine/Core
    • 2_Images_lwip/2_Images_SECoreBin/Inc
    • 2_Images_lwip/2_Images_SBSFU/SBSFU/App
    • 2_Images_lwip/Linker_Common/SW4STM32
  • changed linker to gcc -z max-page-size=8
  • add to linker libraries (-l) :se_interface_app.o
  • add to Library search path (-L) the path where se_interface_app.o can be found
  • add to other options (-Xlinker) -L ../../Linker_Common/SW4STM32
  • And finally to the post build steps I added postbuild.sh

Then, in main.c I change SCB->VTOR to INTVECT_START and include mapping_export.h

I also needed to add an implementation for SysTick_Handler() because CubeMx didn't generate one.

Does anyone know why the ethernet interface that works, won't work when using the bootloader?

If you need more information, please let me know.

Thanks in advance.

Best regards,

Arno

10 REPLIES 10

Hi Jocelyn,

That was indeed the issue! By disabling the D-Cache I managed to finally get it working.

Thank you for you help!

Best regards,

Arno