Skip to main content
Explorer II
July 5, 2025
Solved

FMC_SDRAM example isn't Loading to STM32H750B-DK

  • July 5, 2025
  • 2 replies
  • 1047 views

The STM32H750B-dk Based Custom Board isn't entering debugging mode when using STM32CubeIDE . But QSPI Example Code is working perfectly.

FMC_Error.png

    This topic has been closed for replies.
    Best answer by mƎALLEm

    Hello @Caan ,

    In fact, you need to follow the procedure described in the readme file.

    For CubeIDE, you need to use STM32CubeProgrammer tool to handle the external QSPI flash:

    From th read me file:

    In order to make the program work, you must do the following:

    1. Select required configuration in memory.h in Templates\ExtMem_Boot\Inc template.
    The default configuration is:
    - DATA_AREA set to USE_INTERNAL_SRAM
    - CODE_AREA set to USE_QSPI
    2. Program the internal Flash with the ExtMem_Boot (see below).
    3. Program the external memory with this example (see below).
    4. Start debugging user application or reset for free running.

    In order to load the ExtMem_Boot code :
    - Open your preferred toolchain :
    - Open the Project
    - Rebuild all files
    - Load project image

    In order to load this example to the external memory:
    - Open your preferred toolchain
    - Open the Project
    - Use project matching ExtMem_Boot selected configuration
    - Rebuild all files:
    - Run & debug the program:
    - For an XiP configuration (eXecute in Place from QSPI):
    - Using EWARM or MDK-ARM : Load project image from the IDE: Project->Debug
    - Using STM32CubeIDE :
    - Open the STM32CubeProgrammer tool
    - Select the QSPI external flash loader "MT25TL01G_STM32H750B-DISCO" in case of XiP from QSPI
    - From Erasing & Programming menu, browse and open the output binary file relative to your application
    - Load the file into the external QSPI flash using "Start Programming" at the address APPLICATION_ADDRESS (0x90000000).

    Then run a debug session from CubeIDE.

    Hope that helps.

    2 replies

    Super User
    July 5, 2025

    If the FMC settings are bad, the debugger won't be able to connect.

    Does the program work in non-debug mode?

     

    Consider putting in HAL_Delay(1000) prior to any FMC initialization, setting a breakpoint there, and stepping through.

    CaanAuthor
    Explorer II
    July 6, 2025

    When Downloading the binary directly into the Board same error Shows up.

    mƎALLEmAnswer
    Technical Moderator
    July 16, 2025

    Hello @Caan ,

    In fact, you need to follow the procedure described in the readme file.

    For CubeIDE, you need to use STM32CubeProgrammer tool to handle the external QSPI flash:

    From th read me file:

    In order to make the program work, you must do the following:

    1. Select required configuration in memory.h in Templates\ExtMem_Boot\Inc template.
    The default configuration is:
    - DATA_AREA set to USE_INTERNAL_SRAM
    - CODE_AREA set to USE_QSPI
    2. Program the internal Flash with the ExtMem_Boot (see below).
    3. Program the external memory with this example (see below).
    4. Start debugging user application or reset for free running.

    In order to load the ExtMem_Boot code :
    - Open your preferred toolchain :
    - Open the Project
    - Rebuild all files
    - Load project image

    In order to load this example to the external memory:
    - Open your preferred toolchain
    - Open the Project
    - Use project matching ExtMem_Boot selected configuration
    - Rebuild all files:
    - Run & debug the program:
    - For an XiP configuration (eXecute in Place from QSPI):
    - Using EWARM or MDK-ARM : Load project image from the IDE: Project->Debug
    - Using STM32CubeIDE :
    - Open the STM32CubeProgrammer tool
    - Select the QSPI external flash loader "MT25TL01G_STM32H750B-DISCO" in case of XiP from QSPI
    - From Erasing & Programming menu, browse and open the output binary file relative to your application
    - Load the file into the external QSPI flash using "Start Programming" at the address APPLICATION_ADDRESS (0x90000000).

    Then run a debug session from CubeIDE.

    Hope that helps.