/* Linker script to configure memory regions. */

SEARCH_DIR(.)
GROUP(-lgcc -lc -lnosys)

MEMORY
{
  FLASH (rx) :    ORIGIN = 0x0001F000, LENGTH = 0x26000
  FDS (rw!x) :    ORIGIN = 0x00060000, LENGTH = 0x14000  /* 0x60000–0x78FFF, 100KB */
  RAM (rwx) :     ORIGIN = 0x20004000, LENGTH = 0x0BA00    /* 0x20004000 ~ 0x2000FA00-1 */
    
  BOOTLOADER_SETTINGS (rw) : 		ORIGIN = 0x0007F000, LENGTH = 4K
  READBACK_PORTECTION (rw) : 		ORIGIN = 0x10001208, LENGTH = 0x004	/* 0x10001008 ~ 0x1000120c */
  NFCPIN (rw) : 					ORIGIN = 0x1000120c, LENGTH = 0x004	/* 0x1000120c ~ 0x1000120f */
  MBR_PARAM_ADDRESS (rw) : 			ORIGIN = 0x10001018, LENGTH = 0x004 

  /* dont forget to change pstorage_platform  PSTORAGE_DATA_START_ADDR address */
  /* #define APP_VERSION_INFO_MEM_ADDRESS    0x2000FA00     */
  /* #define BL_VERSION_INFO_MEM_ADDRESS     0x2000FC00     */
}


SECTIONS
{
  /* placing my named section at given address: */
  .fs_data :
  {
      __start_fs_data = .;
      KEEP(*(.fs_data))
      __stop_fs_data = .;
  } > FDS
  .bootloaderSettings 0x0007F000 :
  {
	
  }
     
  .noinit 0x2000FC80 :
  {
     PROVIDE (__noinit_start = .) ;
    *(.noinit*)
     PROVIDE (__noinit_end = .) ;
  }

  /* readback protection */
  .readbackSettings 0x10001208 :
  {
  	KEEP(*(.readbackSettings))
  } > READBACK_PORTECTION
  
  .nfcpinSettings 0x1000120C :
  {
  	KEEP(*(.nfcpinSettings))
  } > NFCPIN
  
  .mbrParamAddress 0x10001018 :
  {
  	KEEP(*(.mbrParamAddress))
  } > MBR_PARAM_ADDRESS 
    
  /* section for nvm protection config */
  /*
  .mpuprotenset0 0x40000600 :
  {
  	KEEP(*(.mpuprotenset0))
  } > MPU
  
  .mpuprotenset1 0x40000604 :
  {
  	KEEP(*(.mpuprotenset1))
  } > MPU
  */


}


INCLUDE "../gcc/app_common.ld"
