19#ifndef PSTORAGE_PL_H__
20#define PSTORAGE_PL_H__
25static __INLINE uint16_t pstorage_flash_page_size()
27 return (uint16_t)NRF_FICR->CODEPAGESIZE;
30#define PSTORAGE_FLASH_PAGE_SIZE pstorage_flash_page_size()
31#define PSTORAGE_FLASH_EMPTY_MASK 0xFFFFFFFF
34#define BOOTLOADER_ADDRESS (NRF_UICR->BOOTLOADERADDR)
36#define BOOTLOADER_ADDRESS (PSTORAGE_FLASH_EMPTY_MASK)
39#define PSTORAGE_FLASH_PAGE_END \
40 ((BOOTLOADER_ADDRESS != PSTORAGE_FLASH_EMPTY_MASK) \
41 ? (BOOTLOADER_ADDRESS / PSTORAGE_FLASH_PAGE_SIZE) \
45#define PSTORAGE_NUM_OF_PAGES 2
46#define PSTORAGE_MIN_BLOCK_SIZE 0x0010
48#define PSTORAGE_DATA_START_ADDR ((PSTORAGE_FLASH_PAGE_END - PSTORAGE_NUM_OF_PAGES - 1) \
49 * PSTORAGE_FLASH_PAGE_SIZE)
50#define PSTORAGE_DATA_END_ADDR ((PSTORAGE_FLASH_PAGE_END - 1) * PSTORAGE_FLASH_PAGE_SIZE)
51#define PSTORAGE_SWAP_ADDR PSTORAGE_DATA_END_ADDR
53#define PSTORAGE_MAX_BLOCK_SIZE PSTORAGE_FLASH_PAGE_SIZE
54#define PSTORAGE_CMD_QUEUE_SIZE 30
58typedef uint32_t pstorage_block_t;
63 pstorage_block_t block_id;
66typedef uint16_t pstorage_size_t;
69void pstorage_sys_event_handler (uint32_t sys_evt);