nRF5 SDK v15.0.0
Macros
Bootloader Information

Macros

#define NRF_UICR_BOOTLOADER_START_ADDRESS   (NRF_UICR_BASE + 0x14)
 Macro for getting the start address of the bootloader image. More...
 
#define SD_INFO_ABS_OFFSET_GET(baseaddr, offset)   ((baseaddr) + (SOFTDEVICE_INFO_STRUCT_OFFSET) + (offset))
 Macro for converting an offset inside the SoftDevice information struct to an absolute address.
 
#define SD_OFFSET_GET_UINT32(baseaddr, offset)   (*((uint32_t *) SD_INFO_ABS_OFFSET_GET(baseaddr, offset)))
 Macros for reading a byte or a word at a particular offset inside a SoftDevice information struct. Use MBR_SIZE as baseaddr when the SoftDevice is installed just above the MBR (the usual case).
 
#define SD_OFFSET_GET_UINT16(baseaddr, offset)   (*((uint16_t *) SD_INFO_ABS_OFFSET_GET(baseaddr, offset)))
 
#define SD_OFFSET_GET_UINT8(baseaddr, offset)   (*((uint8_t *) SD_INFO_ABS_OFFSET_GET(baseaddr, offset)))
 
#define SD_MAGIC_NUMBER_GET(baseaddr)   SD_OFFSET_GET_UINT32(baseaddr, 0x04)
 Macro for reading the magic number of a SoftDevice at a given base address.
 
#define SD_MAGIC_NUMBER_ABS_OFFSET_GET(baseaddr)   SD_INFO_ABS_OFFSET_GET(baseaddr, 0x04)
 Macro for getting the absolute address of the magic number.
 
#define SD_MAGIC_NUMBER   ((uint32_t)0x51B1E5DB)
 The number present at a specific location in all SoftDevices.
 
#define SD_PRESENT   ((SD_MAGIC_NUMBER_GET(MBR_SIZE)) == (SD_MAGIC_NUMBER))
 Whether a SoftDevice is at its regular location.
 
#define SD_MAJOR_VERSION_MULTIPLIER   (1000000)
 The multiplier for the major version of the SoftDevice. See SD_VERSION_GET.
 
#define SD_MAJOR_VERSION_EXTRACT(raw_version)   ((raw_version)/SD_MAJOR_VERSION_MULTIPLIER)
 Read the major version of the SoftDevice from the raw version number. See SD_VERSION_GET.
 
#define BOOTLOADER_DFU_GPREGRET_MASK   (0xB0)
 
#define BOOTLOADER_DFU_START_BIT_MASK   (0x01)
 
#define BOOTLOADER_DFU_GPREGRET2_MASK   (0xA8)
 
#define BOOTLOADER_DFU_SKIP_CRC_BIT_MASK   (0x01)
 
#define BOOTLOADER_DFU_START   (BOOTLOADER_DFU_GPREGRET_MASK | BOOTLOADER_DFU_START_BIT_MASK)
 
#define BOOTLOADER_DFU_SKIP_CRC   (BOOTLOADER_DFU_GPREGRET2_MASK | BOOTLOADER_DFU_SKIP_CRC_BIT_MASK)
 

Detailed Description

Macro Definition Documentation

#define BOOTLOADER_DFU_GPREGRET2_MASK   (0xA8)

Magic pattern written to GPREGRET2 register to signal between main app and DFU. The 3 lower bits are assumed to be used for signalling purposes.

#define BOOTLOADER_DFU_GPREGRET_MASK   (0xB0)

Magic pattern written to GPREGRET register to signal between main app and DFU. The 3 lower bits are assumed to be used for signalling purposes.

#define BOOTLOADER_DFU_SKIP_CRC   (BOOTLOADER_DFU_GPREGRET2_MASK | BOOTLOADER_DFU_SKIP_CRC_BIT_MASK)

Magic number to signal that CRC can be skipped due to low power modes.

#define BOOTLOADER_DFU_SKIP_CRC_BIT_MASK   (0x01)

Bit mask to signal from main application that CRC-check is not needed for image verification.

#define BOOTLOADER_DFU_START   (BOOTLOADER_DFU_GPREGRET_MASK | BOOTLOADER_DFU_START_BIT_MASK)

Magic number to signal that bootloader should enter DFU mode because of signal from Buttonless DFU in main app.

#define BOOTLOADER_DFU_START_BIT_MASK   (0x01)

Bit mask to signal from main application to enter DFU mode using a buttonless service.

#define NRF_UICR_BOOTLOADER_START_ADDRESS   (NRF_UICR_BASE + 0x14)

Macro for getting the start address of the bootloader image.

The macro is not a compile time symbol. It cannot be used as a constant expression, for example, inside a static assert or linker script at-placement.Macro for getting the size of the bootloader image. Bootloader start address in UICR.

Register location in UICR where the bootloader start address is stored.

Note
If the value at the given location is 0xFFFFFFFF, the bootloader address is not set.

Documentation feedback | Developer Zone | Subscribe | Updated