STM32 Bootloader Design – Part 3

Here is the bootloader code, let's go through it and explain it step by step: /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "flash.h" #include "srecord.h" #define USER_APPLICATION_BASE_ADDRESS 0x8004000U uint8_t srec_data[16]; void __svc(1) EnablePrivilegedMode(void ); void __SVC_1 (void){ __disable_irq(); __set_CONTROL((__get_CONTROL( ))& 0xFFFFFFFE); // enter priv mode __enable_irq(); } static void BootJump(uint32_t *Address) { /* 1. Make sure,

2020-02-17T18:37:00+02:00By |Categories: Embedded Systems|Tags: , |1 Comment

STM32 Bootloader Design – Part 2

In the first post of this series, we covered the basic ideas behind creating an STM32 bootloader. Today we will focus on the application code and generate output, that our bootloader code will be able to process. The application code is very simple - it initializes one pin as output and toggles it after some

2020-02-16T15:49:58+02:00By |Categories: Embedded Systems|Tags: , |2 Comments

STM32 Bootloader Design – Part 1

We already learned what a bootloader is and why it is needed in this article. Today we will start developing our own bootloader. For this particular example, we will be using STM32F411 discovery board and FT2232H mini module. The project is based on ARM Keil MDK. Before we start coding, here is some theory. The

2019-08-14T00:14:53+03:00By |Categories: Embedded Systems|Tags: , |0 Comments
Go to Top