 Now, let's take a look at what Secureboot loader does step by step. The first thing to understand is a very simple boot loader. This boot loader will just do a jumping to the target application. It's not yet a Secureboot loader at this moment. The first thing to achieve for a boot loader is to have a separate code from the target application. The Secureboot is always the first application to run. It is usually located at the beginning of the flash address. And this is a code always running after reset. And it is a standalone kind of application. This part of the code does not need to be compiled or linked with a target user application. And for such kind of purpose, we need to define a flash mapping and reserve certain kbytes of flash space for the boot loader itself. And then the rest of the memory can be allocated to application of its configuration data, etc. In terms of RAM, the boot loader will also have some data in RAM during its execution. But those part of the RAM can be then amputed and released before jumping to the application. This will avoid leaving any useful and wanted data to be available when application starts to run. This diagram illustrates how the boot loader launches an application. Assuming that we reserve 20 kbytes for the boot loader, then the boot loader starts from the base address of the internal user flash. And the application starts at the address of the base address plus an offset of 20 kbytes. At the beginning of the boot loader, the first word is the step pointer of the boot loader. Then the second word will be the reset handler PC. Then the following will be the vector table and then vector code, then the main code of the boot loader. The application is actually having the similar kind of structure. So at the start address of the application area, the first word will also be the step pointer and then the application reset handler address. So after reset, the CPU will get the step pointer and also start execution of the reset handler code of the boot loader. Then usually in the boot loader, the last piece of code is a jumper. This jumper will get the application step pointer. We also get the application reset handler address. And then it will set the main step pointer to the application step pointer address and then jump to the address of the application reset handler. Now it's time to have a hands-on for the simple boot loader. The goal of this hands-on is to show the different steps to create application and a simple boot loader, define a flash map for both application and boot loader and have the jumper code in the boot loader to launch the application. Thank you for watching.