Skip to main content
Associate II
April 25, 2025
Solved

CM33 firmware overridden in STM32MP257F-DK

  • April 25, 2025
  • 1 reply
  • 508 views

I was trying to write a small firmware to keep the LD9 Orange LED steady ON, instead of blinking in STM32CubeIDE. I could able to flash into CM33 core using the debugger and able to debug. When I disconnect debugger, it still remain ON.

But once I reset the board, the CM33 firmware is gone and LD9 again started blinking, as if my firmware is over written.

Any solution?

Best answer by Erwan SZYMANSKI

Hello @partha_sarathi1000 ,
This is a normal situation.

When you use CubeIDE to run/debug a firmware on the target, the firmware is not installed permanently on any memory, like traditional MCUs. STM32MPUs cannot do that.

This is Linux (in our standard Ecosystem) that has a service running after boot time, saying that we take a M33 firmware binary in its file system, program it on M33 and make it run. So if you do not modify it, the firmware is still the same (and Indeed, this firmware makes a LED blinking).

The service is called st-m33firmware-load.service

root@stm32mp2-e3-95-f9:~# systemctl | grep m33
 st-m33firmware-load.service 

You can either disable it and launch your own firmware manually, or you can modify this service to automatically point on your own firmware.

Please check out this WIKI article: https://wiki.st.com/stm32mpu/wiki/Linux_remoteproc_framework_overview#Remote_processor_boot

Kind regards,
Erwan.

1 reply

Erwan SZYMANSKI
Erwan SZYMANSKIBest answer
Technical Moderator
April 30, 2025

Hello @partha_sarathi1000 ,
This is a normal situation.

When you use CubeIDE to run/debug a firmware on the target, the firmware is not installed permanently on any memory, like traditional MCUs. STM32MPUs cannot do that.

This is Linux (in our standard Ecosystem) that has a service running after boot time, saying that we take a M33 firmware binary in its file system, program it on M33 and make it run. So if you do not modify it, the firmware is still the same (and Indeed, this firmware makes a LED blinking).

The service is called st-m33firmware-load.service

root@stm32mp2-e3-95-f9:~# systemctl | grep m33
 st-m33firmware-load.service 

You can either disable it and launch your own firmware manually, or you can modify this service to automatically point on your own firmware.

Please check out this WIKI article: https://wiki.st.com/stm32mpu/wiki/Linux_remoteproc_framework_overview#Remote_processor_boot

Kind regards,
Erwan.

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.