fix linker for 833
compile and able to flash but 52833 is not compatible with S140 v6, need to upgrade it to S140 v7
This commit is contained in:
		
							
								
								
									
										91
									
								
								src/linker/nrf52833_s140_v6.ld
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								src/linker/nrf52833_s140_v6.ld
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
/* Linker script to configure memory regions. */
 | 
			
		||||
 | 
			
		||||
SEARCH_DIR(.)
 | 
			
		||||
GROUP(-lgcc -lc -lnosys)
 | 
			
		||||
 | 
			
		||||
MEMORY
 | 
			
		||||
{
 | 
			
		||||
  /** Flash start address for the bootloader. This setting will also be stored in UICR to allow the
 | 
			
		||||
   *  MBR to init the bootloader when starting the system. This value must correspond to 
 | 
			
		||||
   *  BOOTLOADER_REGION_START found in dfu_types.h. The system is prevented from starting up if 
 | 
			
		||||
   *  those values do not match. The check is performed in main.c, see
 | 
			
		||||
   *  APP_ERROR_CHECK_BOOL(*((uint32_t *)NRF_UICR_BOOT_START_ADDRESS) == BOOTLOADER_REGION_START);
 | 
			
		||||
   */
 | 
			
		||||
  FLASH (rx) : ORIGIN = 0x74000, LENGTH = 0x7E000-0x74000 /* 40 KB */
 | 
			
		||||
 | 
			
		||||
  /** Location of mbr params page in flash. */
 | 
			
		||||
  MBR_PARAMS_PAGE (rw) : ORIGIN = 0x0007E000, LENGTH = 0x1000
 | 
			
		||||
  
 | 
			
		||||
  /** Location of bootloader setting in flash. */
 | 
			
		||||
  BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x0007F000, LENGTH = 0x1000
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /** RAM Region for bootloader. */
 | 
			
		||||
  /* Avoid conflict with NOINIT for OTA bond sharing */
 | 
			
		||||
  RAM (rwx) :  ORIGIN = 0x20008000, LENGTH = 0x20020000-0x20008000
 | 
			
		||||
 | 
			
		||||
  /* Location for double reset detection, no init */
 | 
			
		||||
  DBL_RESET (rwx) :  ORIGIN = 0x20007F7C, LENGTH = 0x04
 | 
			
		||||
  
 | 
			
		||||
  /** Location of non initialized RAM. Non initialized RAM is used for exchanging bond information
 | 
			
		||||
   *  from application to bootloader when using buttonluss DFU OTA. */
 | 
			
		||||
  NOINIT (rwx) :  ORIGIN = 0x20007F80, LENGTH = 0x80  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /** Location in UICR where bootloader start address is stored. */
 | 
			
		||||
  UICR_BOOTLOADER (r) : ORIGIN = 0x10001014, LENGTH = 0x04
 | 
			
		||||
    
 | 
			
		||||
  /** Location in UICR where mbr params page address is stored. */
 | 
			
		||||
  UICR_MBR_PARAM_PAGE(r) : ORIGIN = 0x10001018, LENGTH = 0x04
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SECTIONS
 | 
			
		||||
{
 | 
			
		||||
  .fs_data_out ALIGN(4):
 | 
			
		||||
  {
 | 
			
		||||
    PROVIDE( __start_fs_data = .);
 | 
			
		||||
    KEEP(*(fs_data))
 | 
			
		||||
    PROVIDE( __stop_fs_data = .);
 | 
			
		||||
  } = 0
 | 
			
		||||
 | 
			
		||||
  /* Place the bootloader settings page in flash. */
 | 
			
		||||
  .bootloaderSettings(NOLOAD) :
 | 
			
		||||
  {
 | 
			
		||||
    
 | 
			
		||||
  } > BOOTLOADER_SETTINGS
 | 
			
		||||
 | 
			
		||||
  /* Write the bootloader address in UICR. */
 | 
			
		||||
  .uicrBootStartAddress : 
 | 
			
		||||
  {
 | 
			
		||||
    KEEP(*(.uicrBootStartAddress))
 | 
			
		||||
  } > UICR_BOOTLOADER
 | 
			
		||||
  
 | 
			
		||||
  /* Place the mbr params page in flash. */
 | 
			
		||||
    .mbrParamsPage(NOLOAD) :
 | 
			
		||||
  {
 | 
			
		||||
    
 | 
			
		||||
  } > MBR_PARAMS_PAGE
 | 
			
		||||
  
 | 
			
		||||
  /* Write the bootloader address in UICR. */
 | 
			
		||||
  .uicrMbrParamsPageAddress :
 | 
			
		||||
  {
 | 
			
		||||
    KEEP(*(.uicrMbrParamsPageAddress))
 | 
			
		||||
  } > UICR_MBR_PARAM_PAGE
 | 
			
		||||
 | 
			
		||||
  .dbl_reset(NOLOAD) :
 | 
			
		||||
  {
 | 
			
		||||
 | 
			
		||||
  } > DBL_RESET
 | 
			
		||||
 | 
			
		||||
  /* No init RAM section in bootloader. Used for bond information exchange. */
 | 
			
		||||
  .noinit(NOLOAD) :
 | 
			
		||||
  {
 | 
			
		||||
 | 
			
		||||
  } > NOINIT
 | 
			
		||||
 | 
			
		||||
  /* other placements follow here... */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
INCLUDE "nrf_common.ld"
 | 
			
		||||
@@ -11,7 +11,15 @@ MEMORY
 | 
			
		||||
   *  those values do not match. The check is performed in main.c, see
 | 
			
		||||
   *  APP_ERROR_CHECK_BOOL(*((uint32_t *)NRF_UICR_BOOT_START_ADDRESS) == BOOTLOADER_REGION_START);
 | 
			
		||||
   */
 | 
			
		||||
  FLASH (rx) : ORIGIN = 0xF4000, LENGTH = 0xA000 /* 40 KB */
 | 
			
		||||
  FLASH (rx) : ORIGIN = 0xF4000, LENGTH = 0xFE000-0xF4000 /* 40 KB */
 | 
			
		||||
 | 
			
		||||
  /** Location of mbr params page in flash. */
 | 
			
		||||
  MBR_PARAMS_PAGE (rw) : ORIGIN = 0xFE000, LENGTH = 0x1000
 | 
			
		||||
  
 | 
			
		||||
  /** Location of bootloader setting in flash. */
 | 
			
		||||
  BOOTLOADER_SETTINGS (rw) : ORIGIN = 0xFF000, LENGTH = 0x1000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /** RAM Region for bootloader. */
 | 
			
		||||
  /* Avoid conflict with NOINIT for OTA bond sharing */
 | 
			
		||||
@@ -21,20 +29,14 @@ MEMORY
 | 
			
		||||
  DBL_RESET (rwx) :  ORIGIN = 0x20007F7C, LENGTH = 0x04
 | 
			
		||||
  
 | 
			
		||||
  /** Location of non initialized RAM. Non initialized RAM is used for exchanging bond information
 | 
			
		||||
   *  from application to bootloader when using buttonluss DFU OTA. 
 | 
			
		||||
   */
 | 
			
		||||
   *  from application to bootloader when using buttonluss DFU OTA. */
 | 
			
		||||
  NOINIT (rwx) :  ORIGIN = 0x20007F80, LENGTH = 0x80
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  /** Location of bootloader setting in flash. */
 | 
			
		||||
  BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x000FF000, LENGTH = 0x1000
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /** Location in UICR where bootloader start address is stored. */
 | 
			
		||||
  UICR_BOOTLOADER (r) : ORIGIN = 0x10001014, LENGTH = 0x04
 | 
			
		||||
  
 | 
			
		||||
  /** Location of mbr params page in flash. */
 | 
			
		||||
  MBR_PARAMS_PAGE (rw) : ORIGIN = 0x000FE000, LENGTH = 0x1000
 | 
			
		||||
  
 | 
			
		||||
  /** Location in UICR where mbr params page address is stored. */
 | 
			
		||||
  UICR_MBR_PARAM_PAGE(r) : ORIGIN = 0x10001018, LENGTH = 0x04
 | 
			
		||||
}
 | 
			
		||||
@@ -11,28 +11,31 @@ MEMORY
 | 
			
		||||
   *  those values do not match. The check is performed in main.c, see
 | 
			
		||||
   *  APP_ERROR_CHECK_BOOL(*((uint32_t *)NRF_UICR_BOOT_START_ADDRESS) == BOOTLOADER_REGION_START);
 | 
			
		||||
   */
 | 
			
		||||
  FLASH (rx) : ORIGIN = 0x74000, LENGTH = 0xA000 /* 40 KB */
 | 
			
		||||
  FLASH (rx) : ORIGIN = 0x74000, LENGTH = 0x7E000-0x74000 /* 40 KB */
 | 
			
		||||
 | 
			
		||||
  /** Location of mbr params page in flash. */
 | 
			
		||||
  MBR_PARAMS_PAGE (rw) : ORIGIN = 0x7E000, LENGTH = 0x1000
 | 
			
		||||
  
 | 
			
		||||
  /** Location of bootloader setting in flash. */
 | 
			
		||||
  BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x7F000, LENGTH = 0x1000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /** RAM Region for bootloader. */
 | 
			
		||||
  RAM (rwx) :  ORIGIN = 0x20003000, LENGTH = 0x20007F7C-0x20003000
 | 
			
		||||
  RAM (rwx) :  ORIGIN = 0x20008000, LENGTH = 0x20010000-0x20008000
 | 
			
		||||
 | 
			
		||||
  /* Location for double reset detection, no init */
 | 
			
		||||
  DBL_RESET (rwx) :  ORIGIN = 0x20007F7C, LENGTH = 0x04
 | 
			
		||||
 | 
			
		||||
  /** Location of non initialized RAM. Non initialized RAM is used for exchanging bond information
 | 
			
		||||
   *  from application to bootloader when using buttonluss DFU OTA. 
 | 
			
		||||
   */
 | 
			
		||||
   *  from application to bootloader when using buttonluss DFU OTA. */
 | 
			
		||||
  NOINIT (rwx) :  ORIGIN = 0x20007F80, LENGTH = 0x80
 | 
			
		||||
 | 
			
		||||
  /** Location of bootloader setting in flash. */
 | 
			
		||||
  BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x0007F000, LENGTH = 0x1000
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  /** Location in UICR where bootloader start address is stored. */
 | 
			
		||||
  UICR_BOOTLOADER (r) : ORIGIN = 0x10001014, LENGTH = 0x04
 | 
			
		||||
  
 | 
			
		||||
  /** Location of mbr params page in flash. */
 | 
			
		||||
  MBR_PARAMS_PAGE (rw) : ORIGIN = 0x0007E000, LENGTH = 0x1000
 | 
			
		||||
  
 | 
			
		||||
  /** Location in UICR where mbr params page address is stored. */
 | 
			
		||||
  UICR_MBR_PARAM_PAGE(r) : ORIGIN = 0x10001018, LENGTH = 0x04
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user