729c55b790 | ||
---|---|---|
.. | ||
bootloader_components/my_boot_hooks | ||
extra_bootloader_components/extra_component | ||
main | ||
CMakeLists.txt | ||
README.md | ||
pytest_bootloader_extra_dir.py |
README.md
Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
---|
Bootloader extra component
(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 add a custom directory that contains a component to the bootloader build.
Registering extra components for the bootloader can be done thanks to the IDF property BOOTLOADER_EXTRA_COMPONENT_DIRS
. It can either refer to a directory that contains several components, either refer to a single component.
Usage of this example:
Simply compile it:
idf.py build
Then flash it and open the monitor with the following command:
idf.py flash monitor
If everything went well, the bootloader should output the following message:
I (60) EXTRA: This function is called from an extra component
And finally the application will start and show the message:
User application is loaded and running.
Organization of this example
This project contains a main
directory that represents an application. It also has a bootloader_components
directory that contains a component that will be compiled and linked with the bootloader. This bootloader_components
can contain several components, each of them would be in a different directory.
The directory extra_bootloader_components/extra_component/
contains a component that is meant to be included in the bootloader build. To do so, the CMake property BOOTLOADER_EXTRA_COMPONENT_DIRS
is set from the CMakeLists.txt
file.
Below is a short explanation of files in the project folder.
├── CMakeLists.txt Defines the `BOOTLOADER_EXTRA_COMPONENT_DIRS` property
├── main
│ ├── CMakeLists.txt
│ └── main.c User application
├── bootloader_components
│ └── my_boot_hooks
│ ├── CMakeLists.txt
│ └── hooks.c Implementation of the hooks to execute on boot
├── extra_bootloader_components
│ └── extra_component
│ ├── CMakeLists.txt
│ └── extra_component.c Implementation of the extra component
└── README.md This is the file you are currently reading