Skip to main content
Steve Melnikoff
Senior
February 6, 2026
Solved

OEMiROT: no option to execute in place with external RAM enabled

  • February 6, 2026
  • 2 replies
  • 167 views

In STM32Cube_FW_H7RS_V1.3.0, file Projects/STM32H7S78-DK/Applications/ROT/OEMiROT_Boot/Inc/flash_layout.h:

The macro OEMIROT_LOAD_AND_RUN has 3 possible settings, and we're using the NO_LOAD_AND_RUN to execute code (in external flash) in place.

However, we're also using external RAM in our application, and this must be enabled in the bootloader, as the app attempts to initialise values in external RAM at startup.

Unfortunately, the external RAM is only initialised if you select LOAD_AND_RUN_EXT_RAM.

There is a workaround: in boot_hal.c and low_level_ext_ram.c, replace every instance (3 in each file) of:

#if (OEMIROT_LOAD_AND_RUN == LOAD_AND_RUN_EXT_RAM)

...with something like:

#if 1// (OEMIROT_LOAD_AND_RUN == LOAD_AND_RUN_EXT_RAM)

For the future, would you consider having an option to run in place and enable external RAM?

Thank you.

 

 

Best answer by Steve Melnikoff

(ST replied privately to say that my suggestion has been passed on to the appropriate division.)

2 replies

Steve Melnikoff
Steve MelnikoffAuthorBest answer
Senior
March 13, 2026

(ST replied privately to say that my suggestion has been passed on to the appropriate division.)

March 13, 2026