mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
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.
|