cancel
Showing results for 
Search instead for 
Did you mean: 

STM32N6570-DK does not boot after flashing signed binary using STM32CubeProgrammer.

Radhika
Associate

Hi,

I am working with the STM32N6570-DK board. Initially, I am using the GPIO_IOToggle example project to verify the basic board functionality.

I configured the hardware using STM32CubeMX v6.16 and generated the project using the STM32CubeIDE toolchain. The project was built successfully using STM32CubeIDE v2.0.0.
When I run the project in debug mode from CubeIDE, the LED toggles correctly.

However, the device does not boot when I flash the binary manually using STM32CubeProgrammer v2.21.0.

 

Signing and Flashing Details

I am using the following command to sign the output binary generated by CubeIDE:

STM32_SigningTool_CLI -bin <path to fsbl project.bin file> -nk -t fsbl -hv 2.3 \
-o <path to fsbl project-trusted.bin file> \
-dump <path to fsbl project-trusted.bin file> -align

 After generating the trusted binary, I flash it at address 0x70000000 using STM32CubeProgrammer.

Boot Configuration

  • BOOT0 switch: position 1–2

  • BOOT1 switch: position 1–3

After flashing the trusted binary:

  1. I change the BOOT0 switch back to 1–2

  2. Power cycle the board

However, after reconnecting power, the board does not boot from the external flash.

Questions

  1. Are the signing command and parameters I used correct for STM32N6570?

  2. Is 0x70000000 the correct flash address for flashing the FSBL trusted binary?

  3. If my project contains both FSBL and Application, how should the application binary be signed?

  4. What is the correct flash address for appli-trusted.bin?

  5. Are there any additional steps required (option bytes, header configuration, memory layout, etc.) to boot correctly from external flash?

Any guidance or reference documentation would be greatly appreciated.

Thank you for your support.

Best regards,
Radhika

2 REPLIES 2
Aziz BRIGUI
ST Employee

Hello @Radhika

I think the signing command parameters are missing this part "-of 0x80000000". Please refer to this post for further details: How to add the STM32N6's header signature as post ... - STMicroelectronics Community.

Yes, 0x70000000 is correct and if the project contains two parts (FSBL and Application), both should be signed in the same way. The address of the application will depend on the size of the FSBL (There should be no overlap).

Hope this answers your questions.

Aziz 


In order 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.

Hello @Aziz BRIGUI,

Thank you for the prompt response.

I checked the article you suggested and configured the post-build command in STM32CubeIDE accordingly. The signed binary is generated successfully as part of the build process.

After flashing the FSBL signed binary of the GPIO_IOToggle example project, the device boots correctly.
However, when I create a new project from scratch with both FSBL and Application (Appli) configurations, the device does not boot after flashing both binaries using STM32CubeProgrammer.

Below are the details of my project configuration:


Project Configuration Details

  1. I configured GPIO pins PO1 and PG10 as GPIO_Output.
    From the System Core tab, I assigned user labels to both pins and set the Pin Context Assignment property to “FREE”, as used in the GPIO_IOToggle example.

  2. After code generation, these GPIO pins were not included in the MX_GPIO_Init() function automatically.
    Therefore, I added the GPIO initialization manually in FSBL/main.c.

  3. I then built the project and generated both FSBL and Application trusted.bin files.

  4. Post-build step for the FSBL project:

cd "${ProjDirPath}/Debug" && echo y | "C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_SigningTool_CLI.exe" \
-bin "${ProjName}.bin" -nk -of 0x80000000 -t fsbl \
-o "${ProjName}-Trusted.bin" -hv 2.3 \
-dump "${ProjName}-Trusted.bin" -align
  • Post-build step for the Application project:
cd "${ProjDirPath}/Debug" && echo y | "C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_SigningTool_CLI.exe" \
-bin "${ProjName}.bin" -nk -of 0x80000000 -t ssbl \
-o "${ProjName}-Trusted.bin" -hv 2.3 \
-dump "${ProjName}-Trusted.bin" -align​
  • I flashed:

    • fsbl-trusted.bin at address 0x70000000

    • appli-trusted.bin at address 0x70100000

    using STM32CubeProgrammer.

    After flashing both binaries, the device does not boot.

    Could you please guide me on what might be missing or misconfigured in my project setup?
    Please let me know if you need any additional files, logs, or configuration details from my side.

    Thank you for your support.

    Best regards,
    Radhika