Smart Remote 3 nRF52 v1.2
9 #ifndef NRF_DFU_TYPES_H__
10 #define NRF_DFU_TYPES_H__
14 #include "app_util_platform.h"
16 #ifdef SOFTDEVICE_PRESENT
25 #if defined(SOFTDEVICE_PRESENT)
29 #define SOFTDEVICE_REGION_START MBR_SIZE
32 #ifndef CODE_REGION_1_START
33 #define CODE_REGION_1_START SD_SIZE_GET(MBR_SIZE)
39 #ifndef CODE_REGION_1_START
40 #define CODE_REGION_1_START MBR_SIZE
46 #define INIT_COMMAND_MAX_SIZE 256
53 #define CODE_PAGE_SIZE (PAGE_SIZE_IN_WORDS * sizeof(uint32_t))
54 #elif defined(NRF52) || defined(NRF52840_XXAA) || defined(NRF52810_XXAA)
55 #define CODE_PAGE_SIZE (MBR_PAGE_SIZE_IN_WORDS * sizeof(uint32_t))
57 #error "Architecture not set."
63 #define DATA_OBJECT_MAX_SIZE (CODE_PAGE_SIZE * 4)
64 #elif defined( NRF52_SERIES ) || defined ( __SDK_DOXYGEN__ )
65 #define DATA_OBJECT_MAX_SIZE (CODE_PAGE_SIZE)
67 #error "Architecture not set."
74 #define BOOTLOADER_SETTINGS_ADDRESS (0x0003FC00UL)
75 #elif defined( NRF52832_XXAA )
76 #define BOOTLOADER_SETTINGS_ADDRESS (0x0007F000UL)
77 #elif defined( NRF52810_XXAA )
78 #define BOOTLOADER_SETTINGS_ADDRESS (0x0002F000UL)
79 #elif defined( NRF52840_XXAA )
80 #define BOOTLOADER_SETTINGS_ADDRESS (0x000FF000UL)
82 #error "No valid target set for BOOTLOADER_SETTINGS_ADDRESS."
86 #if !defined(NRF_DFU_UPDATABLE_APPLICATION_ONLY) || (NRF_DFU_UPDATABLE_APPLICATION_ONLY == 0)
87 #if defined(NRF52832_XXAA) || defined(NRF52810_XXAA)
95 #define NRF_UICR_MBR_PARAMS_PAGE_ADDRESS (NRF_UICR_BASE + 0x18)
102 #if defined(NRF52840_XXAA_ENGA)
103 #define NRF_MBR_PARAMS_PAGE_ADDRESS (0x000FE000UL)
104 #elif defined( NRF52810_XXAA )
105 #define NRF_MBR_PARAMS_PAGE_ADDRESS (0x0002E000UL)
107 #define NRF_MBR_PARAMS_PAGE_ADDRESS (0x0007E000UL)
111 #if defined(NRF52840_XXAA)
120 #define NRF_UICR_MBR_PARAMS_PAGE_ADDRESS (NRF_UICR_BASE + 0x18)
126 #define NRF_MBR_PARAMS_PAGE_ADDRESS (0x000FE000UL)
134 #ifndef DFU_APP_DATA_RESERVED
135 #define DFU_APP_DATA_RESERVED CODE_PAGE_SIZE * 3
141 #define DFU_REGION_TOTAL_SIZE ((* (uint32_t *)NRF_UICR_BOOTLOADER_START_ADDRESS) - CODE_REGION_1_START)
143 #ifdef SOFTDEVICE_PRESENT
146 #define SOFTDEVICE_REGION_START MBR_SIZE
156 #ifndef CODE_REGION_1_START
157 #define CODE_REGION_1_START SD_SIZE_GET(MBR_SIZE)
160 #ifndef CODE_REGION_1_START
161 #define CODE_REGION_1_START MBR_SIZE
165 #define NRF_DFU_CURRENT_BANK_0 0x00
166 #define NRF_DFU_CURRENT_BANK_1 0x01
168 #define NRF_DFU_BANK_LAYOUT_DUAL 0x00
169 #define NRF_DFU_BANK_LAYOUT_SINGLE 0x01
178 #define NRF_DFU_BANK_INVALID 0x00
179 #define NRF_DFU_BANK_VALID_APP 0x01
180 #define NRF_DFU_BANK_VALID_SD 0xA5
181 #define NRF_DFU_BANK_VALID_BL 0xAA
182 #define NRF_DFU_BANK_VALID_SD_BL 0xAC
227 #define SYSTEM_SERVICE_ATT_SIZE 8
288 #ifdef SOFTDEVICE_PRESENT
291 #endif // SYSTEM_SERVICE_ATT_SIZE
294 #pragma pack() // revert pack settings
301 #endif // NRF_DFU_TYPES_H__