53 lines
1.8 KiB
Markdown
53 lines
1.8 KiB
Markdown
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-S2 | ESP32-S3 |
|
||
| ----------------- | ----- | -------- | -------- | -------- | -------- |
|
||
|
||
# Bootloader override
|
||
|
||
(See the README.md file in the upper level for more information about bootloader examples.)
|
||
|
||
The purpose of this example is to show how to override the second stage bootloader from a regular project.
|
||
|
||
**NOTE**: Overriding the bootloader is not supported with `Makefile` build system, it is only available with `CMake`.
|
||
|
||
## How to use example
|
||
|
||
Simply compile it:
|
||
```
|
||
idf.py build
|
||
```
|
||
|
||
And flash it with the following commands:
|
||
```
|
||
idf.py flash
|
||
```
|
||
|
||
This custom bootloader does not do more than the older bootloader, it only prints an extra message on start up:
|
||
```
|
||
[boot] Custom bootloader has been initialized correctly.
|
||
```
|
||
|
||
## Organisation of this example
|
||
|
||
This project contains an application, in the `main` directory that represents a user program.
|
||
It also contains a `bootloader_components` directory that, as it name states, contains a component that will override the current bootloader implementation.
|
||
|
||
Below is a short explanation of files in the project folder.
|
||
|
||
```
|
||
├── CMakeLists.txt
|
||
├── main
|
||
│ ├── CMakeLists.txt
|
||
│ └── main.c User application
|
||
├── bootloader_components
|
||
│ └── main
|
||
│ ├── component.mk
|
||
│ ├── CMakeLists.txt
|
||
│ ├── ld/
|
||
│ │ └── ...
|
||
│ └── bootloader_start.c Implementation of the second stage bootloader
|
||
└── README.md This is the file you are currently reading
|
||
```
|
||
|
||
As stated in the `README.md` file in the upper level, when the bootloader components is named `main`, it overrides
|
||
the whole second stage bootloader code.
|