Skip to main content
Steve Melnikoff
Senior
Feb 6, 2026 6:04 PM UTC
Solved

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

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.

 

 

Steve Melnikoff
Steve MelnikoffBest answer
Senior
Mar 13, 2026 4:42 PM UTC

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

2 replies

Steve Melnikoff
Steve MelnikoffAuthorBest answer
Senior
Mar 13, 2026 4:42 PM UTC

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

Visitor
Oct 29, 2026 5:25 AM UTC

This looks like an important STM32 configuration issue, as understanding the OEMiROT execution options and external RAM limitations can help developers choose the right boot and memory layout.With all vehicles unlocked, you skip the grind and drive anything you want. You chase action across town in top tier rides.