FDS

FDS_ERR_NO_PAGES = 34314

During fds_init(). For example, when 2 pages x 4096 B are configured, FDS try to put them at end of available for app flash:

FDS implements safety check if flash area is really free. It expects clean pages (0xFF) or pages with valid FDS signatures.

If ROM code is too big and overlaps on pages fds_init() return error FDS_ERR_NO_PAGES.

It is common problem on small devices like nRF52820 when softdevice is used. To detect problem during compile time, simply define correct sizes in linker script (nRF52820):

MEMORY
{
  mbr (rx) :            ORIGIN = 0x00000, LENGTH = 0x1000
  sd (rx) :             ORIGIN = 0x01000, LENGTH = 0x18000
  FLASH (rx) :          ORIGIN = 0x19000, LENGTH = 0x1D000
  fds (r) :             ORIGIN = 0x36000, LENGTH = 0x2000
  bootloader (rx) :     ORIGIN = 0x38000, LENGTH = 0x6000
  mbr_params_page (r) : ORIGIN = 0x3E000, LENGTH = 0x1000
  settings_page (r) :   ORIGIN = 0x3F000, LENGTH = 0x1000
 
  RAM (rwx) :  ORIGIN = 0x20001a40, LENGTH = 0x65c0
  /* UICR.CUSTOMER[0] start address */
  uicr_serial_number_addr (r) : ORIGIN = 0x10001080, LENGTH = 0x14
}