How to Create a Super Simple Bootloader, Part 1: Getting Started

preview_player
Показать описание

Learn how to create your STM32-based application using STM32CubeIDE and use its Linker Script to create segments of memories, place variables in RAM and FLASH, allocate functions in the desired memory region, and even how to share code between your application and custom bootloader.

The STM32CubeIDE is be used to create a super simple bootloader, after covering the basics of the linker script and evolves into creating an application that runs after the bootloader starts in a different portion of the memory. This video series also shows how to debug Bootloader and Application simultaneously and how to create a static library shared between both projects.

Benefits you will take away:

• Understand the basics of the linker script
• Understand how to place variables in RAM and FLASH
• Understand how to create functions in RAM and FLASH
• Learn how to create a super simple bootloader
• Learn how to offset the interrupt vector and create an application to run in a different memory region
• Learn how to debug bootloader and application
• Learn how to share an API between bootloader and application


In this video: we’ll start with the agenda and what to expect for the entire series, as well as a deeper understanding of what the linker script is and how it connects to the compiler and code itself. During this video, the demo session will cover the creation of the base project for the bootloader and how to add variables and contents in FLASH and RAM.

Hardware requirements: NUCLEO-G071RB is preferred, but any STM32 with Cortex-M0+ or higher can be used for the hands-on session with some minor changes. Note: STM32 with Cortex-M0 needs a different strategy when it comes to video 3 and onward, as the M0 core does not allow changing the NVIC address position due to lack of the VTOR register.
Рекомендации по теме
Комментарии
Автор

I watched the whole series and I want to say that it was wonderfully presented!

You jumped through the sections without wasting time, showing all relevant code and settings. This allows me to create my own project and mess around to learn and not waste too much time watching a video that goes into unnecessary detail.

musabbafridi
Автор

What a FANTASTIC IDEA, real low level programming stuff. I have been of the mind set that "C" and "C++" were the way to go, but this is somewhat dissatisfying for an old hardware developer's perspective (been 'doing it' since 1967) - yep I'm an old bastard, but still love getting down and dirty in the metal.
GREAT start for a series for people like me - even younger ones.
Top stuff guys.
Where is that Polish bloke? I think he would make another great team member for the 'bridging' of seriously great ST hardware being 'malleable' by the applicable software to complete the application cycle.
Cheers to all,
n.

nedbazzvictoria
Автор

This is a little bit late but I personally think this was well presented. I didn't previously understand what the __attribute__ keywork meant, but because of this video I will have a much better understanding of the libraries that have been developed! Thank you for this.

rajivnarayan
Автор

This video is amazingly helpful, I had no problems with the accent

ridiculousrusty
Автор

As someone who mixes sound for a church I have some specific suggestions. I think the reason the speaker is hard to understand is that there is too much bass in the voice. We regularly put a low frequency cutoff in vocals up to about 200Hz. This gets rid of the muddiness of the voice. I also suggest that while the speaker is speaking that the background music but cut in half or more - I think it is too loud. In general I think the production quality of these videos is very good, but agree they are hard to listen to.

relcominc.
Автор

Actually great content, nice dive into the topic, something I was looking for, but the audio really should be better. This is really hard on ears for longer than a minute (but I made it)

ilyas.
Автор

At 1:55 you missed the compile step, where .c or preprocessed files are converted to .s
And then the .s is converted to .o using assembler.

powerstar
Автор

Guys this is not the first time I make such comment on an stm video, the audio quality is terrible and it’s hard to understand the speach... I mean what’s wrong! in 2021 it should fairly easy to record with a decent quality!!!

fcampanini
Автор

Didn't get the NOLOAD part.
what is happening here? If you do this then while you are flashing you are skipping this 128bytes of array. So it takes less time to compile and build and when flashing you ultimately skip the section.
Am I correct?
so default value will be 0xFF if that area is cleared.

vb
Автор

Why Im not able to see the "myBufBlockFLASH" inside the flash memory section?

enricoperrotta
Автор

I did this in Ubuntu, and it only too about 800ms to build unlike ther~40s it took for you to build. Why is that?

Obama
Автор

To be honest, I did not understand why the first build resulted in a 393MB .bin file. Could anyone explain that to me?
Thank you.

ulysses_grant
Автор

Thank you so much for the video but unfortunately the audio quality is too low. I can only understand some words because of it.

b.w.oostdam
Автор

When I use "Build All", build was successful but couldn't see Binary files. Do I have enable some option to create binary files?

justdoingodswork
Автор

Sir, it was a wonderful playlist, i wanted to know how we can create a custom bootloader for infineon tricore tc 265 can you please help me sir.

irlfkdy
Автор

You could rival arduino if you sold your chips bootloaded, like arduino does.

jjrd
Автор

Excellent topic but so hard to understand what he is saying. Bikini of the stack?

Nelson
Автор

Spoiled by poor audio in places and the irritating music which is just a distraction.

we-are-electric
Автор

Great product, why not sell them already bootloaded? And have a programmer like arduino does? I'm not an engineer, I can go through this but why not use arduino instead? Truth is I like your chip better and will learn.

jjrd
Автор

it took 45 min to understand the video of 8min, poor audio and the accent is so difficult to understand. please fix this.

shrijithmjain