Skip to main content
Associate
June 20, 2025
Question

How to run program on STM32N6 after flashing without changing BOOT-1 jumper

  • June 20, 2025
  • 2 replies
  • 535 views

Hello ST Community,

I’m working with the STM32 Nucleo-N657 board and need a way to execute my application after flashing to external memory without manually toggling the BOOT1 jumper on the board.

What I’m Doing Now:

  1. BOOT1 jumper is set to HIGH for development (DEV boot mode)
  2. I have a simple LED blink application built with GPIO configured in the FSBL context
  3. The code runs as expected in DEV mode (debug mode of STM32CubeIDE)
  4. I then flashed the signed binary in external memory using STM32CubeProgrammer and External Memory loader for Nucleo-N6 board at address 0x70000000. 
  5. Then, I switched BOOT-1 jumper to LOW and reset the board. The code runs as expected from external memory.

Problem:

I have N6 board connected to a remote PC and won’t always have physical access to toggle the BOOT1 jumper and press reset.

I would like to know:

  • Is there a programmatic or configuration-based way to run the program automatically after flashing, without needing to change the BOOT1 jumper manually?

  • Can this be achieved via STM32_Programmer_CLI, or by modifying BOOTROM-related OTP settings.  

I am looking for a way to avoid all manual interventions between flashing and execution.

Any help or guidance will be greatly appreciated!

Thanks,

 

2 replies

Konami
Senior
April 25, 2026

ST - is there some way to achieve this? Alternatively is there a CLI based way to run an application from RAM in dev mode without the use of CubeIDE?

RomainR.
ST Employee
April 26, 2026

Hello @Konami 

In DEV_BOOT mode, to execute code from RAM, you need tto load the binary into the target memory region (AXISRAM1 or AXISRAM2), perform a core reset, force the program counter (PC) at the start address of that memory region (at 0x34180400 if in AXISRAM2), and set the stack pointer (SP) at the beginning of stack address.
This is depend of the linker configuration used.

This is what all IDEs such as STM32CubeIDE or IAR Embedded Workbench for Arm do. STM32_Programmer_CLI, combined with a script, can technically perform all of these steps as well.

Be careful: on the STM32N6 microcontroller series, applying a system reset will erase AXISRAM1 and AXISRAM2. Refer to RM0486, Table 33 – Internal SRAM features. Therefore, make sure to perform a core reset instead.
Best regards,
Romain,

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
Konami
Senior
April 26, 2026

Great, thanks. Could you share what the right commands for STM32_Programmer_CLI to do this would be?

RomainR.
ST Employee
April 26, 2026

@SauravShandilya 

Unfortunately, there is no other way to change the boot behavior beyond the logical level combinations of the BOOT0 and BOOT1 pins.
In all cases, the decision is made by the BootROM and its execution is not accessible by the user. Refer to UM3234.
Best regards,
Romain,

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.