nRF5 SDK v15.0.0
Data Structures | Macros | Typedefs | Enumerations | Variables
DFU types

Data Structures

struct  nrf_dfu_bank_t
 Description of a single bank. More...
 
struct  dfu_progress_t
 
struct  nrf_dfu_settings_t
 DFU settings for application and bank data. More...
 

Macros

#define INIT_COMMAND_MAX_SIZE   256
 
#define CODE_PAGE_SIZE   (MBR_PAGE_SIZE_IN_WORDS * sizeof(uint32_t))
 Size of a flash page. This value is used for calculating the size of the reserved flash space in the bootloader region.
 
#define DATA_OBJECT_MAX_SIZE   (CODE_PAGE_SIZE)
 Maximum size of a data object.
 
#define BOOTLOADER_SETTINGS_PAGE_SIZE   (CODE_PAGE_SIZE)
 Page location of the bootloader settings address.
 
#define NRF_UICR_MBR_PARAMS_PAGE_ADDRESS   (NRF_UICR_BASE + 0x18)
 MBR parameters page in UICR. More...
 
#define NRF_MBR_PARAMS_PAGE_SIZE   (CODE_PAGE_SIZE)
 
#define DFU_APP_DATA_RESERVED   (CODE_PAGE_SIZE * 3)
 Page location of the MBR parameters page address. More...
 
#define DFU_REGION_END(bootloader_start_addr)   ((bootloader_start_addr) - (DFU_APP_DATA_RESERVED))
 Total size of the region between the SoftDevice and the bootloader.
 
#define DFU_REGION_START   (nrf_dfu_bank0_start_addr())
 
#define DFU_REGION_TOTAL_SIZE   ((DFU_REGION_END) - (DFU_REGION_START))
 
#define NRF_DFU_CURRENT_BANK_0   0x00
 
#define NRF_DFU_CURRENT_BANK_1   0x01
 
#define NRF_DFU_BANK_LAYOUT_DUAL   0x00
 
#define NRF_DFU_BANK_LAYOUT_SINGLE   0x01
 
#define NRF_DFU_BANK_INVALID   0x00
 DFU bank state codes. More...
 
#define NRF_DFU_BANK_VALID_APP   0x01
 
#define NRF_DFU_BANK_VALID_SD   0xA5
 
#define NRF_DFU_BANK_VALID_BL   0xAA
 
#define NRF_DFU_BANK_VALID_SD_BL   0xAC
 

Typedefs

typedef void(* nrf_dfu_observer_t )(nrf_dfu_evt_type_t notification)
 Function for notifying DFU state.
 

Enumerations

enum  nrf_dfu_evt_type_t {
  NRF_DFU_EVT_DFU_INITIALIZED,
  NRF_DFU_EVT_TRANSPORT_ACTIVATED,
  NRF_DFU_EVT_TRANSPORT_DEACTIVATED,
  NRF_DFU_EVT_DFU_STARTED,
  NRF_DFU_EVT_OBJECT_RECEIVED,
  NRF_DFU_EVT_DFU_FAILED,
  NRF_DFU_EVT_DFU_COMPLETED,
  NRF_DFU_EVT_DFU_ABORTED
}
 Event types in the bootloader and DFU process. More...
 

Variables

 ANON_UNIONS_ENABLE
 DFU progress. More...
 
 ANON_UNIONS_DISABLE
 

Detailed Description

Macro Definition Documentation

#define DFU_APP_DATA_RESERVED   (CODE_PAGE_SIZE * 3)

Page location of the MBR parameters page address.

Size (in bytes) of the flash area reserved for application data.

The area is found at the end of the application area, next to the start of the bootloader. This area will not be erased by the bootloader during a firmware upgrade. The default value is 3 pages which matches the size used in most SDK examples.

#define INIT_COMMAND_MAX_SIZE   256

Maximum size of the init command stored in dfu_settings.

#define NRF_DFU_BANK_INVALID   0x00

DFU bank state codes.

The DFU bank state indicates the content of a bank: A valid image of a certain type or an invalid image.Invalid image.

#define NRF_DFU_BANK_VALID_APP   0x01

Valid application.

#define NRF_DFU_BANK_VALID_BL   0xAA

Valid bootloader.

#define NRF_DFU_BANK_VALID_SD   0xA5

Valid SoftDevice.

#define NRF_DFU_BANK_VALID_SD_BL   0xAC

Valid SoftDevice and bootloader.

#define NRF_UICR_MBR_PARAMS_PAGE_ADDRESS   (NRF_UICR_BASE + 0x18)

MBR parameters page in UICR.

Register location in UICR where the page address of the MBR parameters page is stored (only used by the nRF52 MBR).

Note
If the value at the given location is 0xFFFFFFFF, no MBR parameters page is set.

Enumeration Type Documentation

Event types in the bootloader and DFU process.

Enumerator
NRF_DFU_EVT_DFU_INITIALIZED 

Starting DFU.

NRF_DFU_EVT_TRANSPORT_ACTIVATED 

Transport activated (e.g. BLE connected, USB plugged in).

NRF_DFU_EVT_TRANSPORT_DEACTIVATED 

Transport deactivated (e.g. BLE disconnected, USB plugged out).

NRF_DFU_EVT_DFU_STARTED 

DFU process started.

NRF_DFU_EVT_OBJECT_RECEIVED 

A DFU data object has been received.

NRF_DFU_EVT_DFU_FAILED 

DFU process has failed, been interrupted, or hung.

NRF_DFU_EVT_DFU_COMPLETED 

DFU process completed.

NRF_DFU_EVT_DFU_ABORTED 

DFU process aborted.

Variable Documentation

ANON_UNIONS_ENABLE

DFU progress.

Be aware of the difference between objects and firmware images. A firmware image consists of multiple objects, each of a maximum size DATA_OBJECT_MAX_SIZE.

Note
The union inside this struct is cleared when CREATE_OBJECT of command type is executed, and when there is a valid post-validation. In DFU activation (after reset) the dfu_progress_t::update_start_address will be used in case of a SD/SD+BL update.

Documentation feedback | Developer Zone | Subscribe | Updated