STM32 Tutorial - Bootloader That Can Update And Jump To Multiple Applications

preview_player
Показать описание
0:00 - Introduction
0:29 - What is a Bootloader?
1:32 - Explaining Flash Memory partitions
2:23 - Explaining Hardware Changes and Wiring
4:40 - Jump Mode Demonstration (Application 1)
5:51 - Jump Mode Demonstration (Application 2)
6:18 - Explaining That the Bootloader runs only until it jumps to an Application
6:48 - Erasing Application 1 with my custom STM32 Flasher
8:02 - With no Application the bootloader signalizes an SOS error
8:50 - Flashing Application 1 back to the STM32
11:16 - How to make your own Bootloader (Abstract Level)
14:19 - Explaining the jump function
16:07 - A correct way to de-initialize all peripherals
17:23 - Explaining the Bootloader project in STM32CubeIDE
29:02 - Explaining Application 1 in STM32CubeIDE
33:16 - Explaining Application 2 in STM32CubeIDE
34:19 - Caution!!! What if you forget to set up a Vector Table and a Linker?
35:43 - Java application: STM32 Flasher
41:17 - Some final words and advices for this tutorial

Рекомендации по теме
Комментарии
Автор

I dont know why you don't have 100k subscribers. Seriously keep up the good work!

MrHD
Автор

This effort is really appreciated !!
It was like a myth to me, as to how a bootloader does the erasing and writing operations on the flash memory, with no "wires", or "electrical current" as far as I know when using a JTAG or ISP methods in general. Really thank you so much.

muhammadfouadalharoon
Автор

I managed to code my first canbus bootloader with your help mister, youre the one

javib
Автор

Thank you for this video, we need more of these videos on embedded / stm32,
subscribed!

rick_er
Автор

Congratulations!!! Very, Very Good! I tested here and works very fine! I don't used USB com port for download. I have used ST-Link V2 and ignored the USB code lines. It works very fine too. Thank you!

brunofernandes
Автор

Флэшер на джаве. ОМГ) Мусье знает толк в извращениях)

Ma_X
Автор

Wow! This video is perfect. Congratulations for the great job!

DELPITEC
Автор

ohhhh thanks man that was exactly what i was looking for, on top of that i wasn't sure if upload a bootloader at (and keep the original bootloader which is not unerasable i think) and have the rest of the memory splitted in two (for two application or 2 firmware with different update) was a good approach... You definitly convince me that i was right ! thanks a lot man

yannkergutuil
Автор

I think maybe you could have scripted the video to make it more precise. There are several key points missing or that maybe you tocuhed very quickly. That been said, your contribution is amazing! Thank you for the big effort! It really helped me achieve what I intended.

danieldominguez
Автор

It runs Thank you so so much for all specific documents + video. :)

MrHAndFriends
Автор

Even if you try to flash an application to the wrong partition, you can try out that the application on the STM32 crashes.
For example when you flash the App1.bin onto the partition for App2, the STM32 application will get stuck on HAL_Delay(time); or any interrupt.

ViktorVano
Автор

Thank you so much for this great tutorial.

mahmoudkotb
Автор

hi, I hope you are well, I have a project to do which is to retrieve a binary file from github using the sim7600 then flash it into the stm32f446re flash memory and execute it, for example in 0x8002000 how to do it Please.thank's

mahdidjennad
Автор

Thanks for the code - much appreciated

rockpadstudios
Автор

Hi i used interrupt in both programs to receive from uart2 but, after switching to another application, the interrupt is not called. I've deinitialise HAL program as a whole. Is there other solution?

aliamardhiah
Автор

awesome, your effort is really appreciated. can you make a video to update the firmware using ble ?

sanjeevpatelsanjeevpatel
Автор

good video viktor , thank you for you share details... only I expected you use as "xmodem" packet protocol

huseyinhilmicelebi
Автор

awesome as always.by the way can you do a tutorial on an encrypted bootloader for the same chip ?? would be really helpful

achalasamapriya
Автор

hey there, what is the difference between using boot pins and writing a uart program which write the data on the flash and jumps to the user application ?

shayanqezelbash
Автор

In the bootloader, do you do anything to modify the interrupt vector table. Is there an interrupt vector offset register that is set prior to jumping to the application? How will the MCU know to go to the vector tables of each application?

MM-riex