nRF51 SDK: Types and definitions.

| nRF51 SDK

- Home
- Related Pages
- API Reference
- Data Structures

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
Types and definitions.
Device Firmware Update API.

Device Firmware Update module type and definitions. More...

## Data Structures

struct | dfu_update_packet_t
| Structure holding a bootloader packet received on the UART. More...
struct | dfu_update_status_t
| Structure holding DFU complete event. More...

## Macros

#define | NRF_UICR_BOOT_START_ADDRESS (NRF_UICR_BASE + 0x14)
#define | PACKET_SIZE 512
#define | PACKET_HEADER_SIZE sizeof(uint32_t)
#define | CODE_REGION_1_START 0x00014000
#define | BOOTLOADER_REGION_START 0x0003C800
#define | BOOTLOADER_SETTINGS_ADDRESS 0x0003FC00
#define | DFU_REGION_TOTAL_SIZE (BOOTLOADER_REGION_START - CODE_REGION_1_START)
#define | DFU_APP_DATA_RESERVED 0x0000
#define | DFU_IMAGE_MAX_SIZE_FULL (DFU_REGION_TOTAL_SIZE - DFU_APP_DATA_RESERVED)
#define | DFU_IMAGE_MAX_SIZE_BANKED (((DFU_REGION_TOTAL_SIZE)/2) - DFU_APP_DATA_RESERVED)
#define | DFU_BANK_0_REGION_START CODE_REGION_1_START
#define | DFU_BANK_1_REGION_START (DFU_BANK_0_REGION_START + DFU_IMAGE_MAX_SIZE_BANKED)
#define | CODE_PAGE_SIZE 1024
#define | EMPTY_FLASH_MASK 0xFFFFFFFF
#define | INVALID_PACKET 0x00
#define | INIT_PACKET 0x01
#define | START_DATA_PACKET 0x02
#define | DATA_PACKET 0x03
#define | STOP_DATA_PACKET 0x04

## Typedefs

typedef void(* | dfu_complete_handler_t )(dfu_update_status_t dfu_update_status)
| Update complete handler type.

## Enumerations

enum | dfu_update_status_code_t { DFU_UPDATE_COMPLETE, DFU_BANK_0_ERASED, DFU_BANK_1_ERASED, DFU_TIMEOUT, DFU_RESET }
| DFU status error codes. More...

## Functions

| STATIC_ASSERT ((((0x0000)&(1024-1))==0x00))

## Detailed Description

Device Firmware Update module type and definitions.

## Macro Definition Documentation

#define BOOTLOADER_REGION_START 0x0003C800

This field should correspond to start address of the bootloader, found in UICR.RESERVED, 0x10001014, register. This value is used for sanity check, so the bootloader will fail immediately if this value differs from runtime value. The value is used to determine max application size for updating.

#define BOOTLOADER_SETTINGS_ADDRESS 0x0003FC00

The field specifies the page location of the bootloader settings address.

#define CODE_PAGE_SIZE 1024

Size of a flash codepage. Used for size of the reserved flash space in the bootloader region. Will be runtime checked against NRF_UICR->CODEPAGESIZE to ensure the region is correct.

#define CODE_REGION_1_START 0x00014000

This field should correspond to the size of Code Region 0, (which is identical to Start of Code Region 1), found in UICR.CLEN0 register. This value is used for compile safety, as the linker will fail if application expands into bootloader. Runtime, the bootloader will use the value found in UICR.CLEN0.

#define DATA_PACKET 0x03

Packet identifies for a Data Packet.

#define DFU_APP_DATA_RESERVED 0x0000

Size of Application Data that must be preserved between application updates. This value must be a multiple of page size. Page size is 0x400 (1024d) bytes, thus this value must be 0x0000, 0x0400, 0x0800, 0x0C00, 0x1000, etc.

#define DFU_BANK_0_REGION_START CODE_REGION_1_START

Bank 0 region start.

#define DFU_BANK_1_REGION_START (DFU_BANK_0_REGION_START + DFU_IMAGE_MAX_SIZE_BANKED)

Bank 1 region start.

#define DFU_IMAGE_MAX_SIZE_BANKED (((DFU_REGION_TOTAL_SIZE)/2) - DFU_APP_DATA_RESERVED)

Maximum size of a application, excluding save data from the application.

#define DFU_IMAGE_MAX_SIZE_FULL (DFU_REGION_TOTAL_SIZE - DFU_APP_DATA_RESERVED)

Maximum size of a application, excluding save data from the application.

#define DFU_REGION_TOTAL_SIZE (BOOTLOADER_REGION_START - CODE_REGION_1_START)

Total size of the region between SD and Bootloader.

#define EMPTY_FLASH_MASK 0xFFFFFFFF

Bit mask that defines an empty address in flash.

#define INIT_PACKET 0x01

Packet identifies for initialization packet.

#define INVALID_PACKET 0x00

Invalid packet identifies.

#define NRF_UICR_BOOT_START_ADDRESS (NRF_UICR_BASE + 0x14)

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

#define PACKET_HEADER_SIZE sizeof(uint32_t)

Size of the data packet header.

#define PACKET_SIZE 512

Size of each data packet. Also used for initial receiving of packets from transport layer.

#define START_DATA_PACKET 0x02

Packet identifies for the Data Start Packet.

#define STOP_DATA_PACKET 0x04

Packet identifies for the Data Stop Packet.

## Enumeration Type Documentation

enum dfu_update_status_code_t

DFU status error codes.

Enumerator
DFU_UPDATE_COMPLETE | Status update complete.
DFU_BANK_0_ERASED | Status bank 0 erased.
DFU_BANK_1_ERASED | Status bank 1 erased.
DFU_TIMEOUT | Status timeout.
DFU_RESET | Status Reset to indicate current update procedure has been aborted and system should reset.