cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H745 Dual Core bootloader application

HS
Associate II

Hi,

I am using stm32h745 dual core microcontroller. I want to bootloader application in this processor. The same process does not work with applications made with single core. Can anyone share a sample code for this? Or can you help me on how to apply bootloader in dualcore?

7 REPLIES 7
TDK
Guru

There's not much that needs to be different for a dual core bootloader compared to a single core chip. You'll have two programs to flash instead of one, but otherwise the concept is identical.

If you feel a post has answered your question, please click "Accept as Solution".
HS
Associate II

If you think this is the case, can you share a working example code? Dual core is also a bootloader application. Because there is no sample application for dual core in the literature and the ones for single core do not work either.

If you think people want to do your job for you, ascribe some value to the work involved..

One core is certainly capable of writing the entire FLASH space, where both core images reside. Each core can also update it's own image, or chose which image it wants to run. You can't have both cores write concurrently so you'll need to arbitrate that.

If the primary core starts the secondary, it can apply the update/recovery processes before doing so.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

I tire of the "i tried but it doesn't work" excuse with little effort and no evidence behind it. If you couldn't get one example to work, providing another doesn't seem worthwhile.

If you want to work through why something doesn't work, post your code and issues and expectation and we can work from there. Getting new free code for something as complex as a bootloader when examples already exist, probably not going to get any takers here for that.

If you feel a post has answered your question, please click "Accept as Solution".
HS
Associate II

First of all, I would like you to leave the discussion aspect. I think such a suggestion should not be a problem on a platform where many people share the github link and this is normal. 

To make the issue clearer, the FLASH linker of my application code is below for m4 and m7. My application code is LED blink running on m7.  Configurations and bootloader code are below. The problem is that it cannot jump to the application code.
M4:

HS_0-1721109682547.png

 

M7: I reserved 0x40000 space for the bootloader.

 

HS_12-1721111326263.png

 

The bootloader code is below.

HS_2-1721110868047.png

HS_3-1721110898188.png

HS_4-1721110914672.png

HS_5-1721110932518.png

HS_6-1721110951159.png

HS_7-1721111009592.png

HS_8-1721111028688.png

HS_9-1721111044224.png

In my application code, I gave vector offset for m7.

HS_10-1721111214631.png

 

 

 

 

 

 

TDK
Guru

Your bootloader is running on the M7, right?

It stops the M4 core, erases the M4 code, restarts the M4 core, and then it jumps to the M4 application that it just flash? That doesn't make sense. The M7 core can't run the M4 code.

If you feel a post has answered your question, please click "Accept as Solution".
HS
Associate II

Yes, bootloader m7 also works. Application code also works on m7.
Even if I call the goto_application() function directly without stopping the M4 core, deleting the M4 core and restarting the M4 core, the bootloader does not work.
This was the bootloader I wanted to develop as the first step. If this worked, I would develop a bootloader for my application code on both m7 and m4.