| nRF5 SDK v12.0.0 |

Choose documentation: | nRF5 SDK | S130 SoftDevice API | S132 SoftDevice API | S212 SoftDevice API | S332 SoftDevice API

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Bootloader modules

The bootloader modules in the nRF5 SDK are building blocks for implementing a bootloader for your nRF5 SoC. They are used in the provided example bootloader (BLE Secure DFU Bootloader), but you can also use them to build your own, custom bootloader.

A basic bootloader will start an application that is located at a specific place in memory, so you can use such a bootloader, for example, to switch between several applications or to initialize the device before you start the application. You can easily extend the bootloader with more functionality, either by including more of the provided modules or by adding your own implementation.

The most important extension to the bootloader module that the nRF5 SDK provides is the Device Firmware Update (DFU) functionality. Eventually, combinations of the provided modules will give you the same functionality as in the previous BLE & HCI/UART bootloader, but in a more modular way that is easy to understand and maintain. However, the current implementation of the bootloader modules does not provide the full functionality yet. The current implementation focuses on a bootloader that allows Device Firmware Updates over BLE and that can be extended with security and compatibility checks. If you need a DFU bootloader that supports serial (HCI/UART) transport, use the DFU bootloader example from a previous version of the SDK (v11.0.0 or earlier) instead of the bootloader modules. For a DFU bootloader that uses ANT, see the Experimental: ANT Bootloader/DFU example.

The following figure shows the layer architecture of the bootloader modules:

Bootloader modules

See the following pages for more information about the modules that are available:

- Bootloader (nrf_bootloader)
- Cryptography library (nrf_crypto)
- DFU bootloader (nrf_dfu)
- DFU transport (nrf_dfu_transport)

The BLE Secure DFU Bootloader example shows a full implementation of a bootloader that allows secure Device Firmware Updates over BLE.