This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Linker Error :: while upgrading the sdk version to 13

HI All,

I am trying to upgrade sdk v11 to sdk v13 in my  project and after compilation i am facing Linker Error as mentioned below.

binaries/app/SmartTag2/dfuFlash.c.o:/home/dcpl/Videos/Tack_Test_31_May/ToolChainSetup/coolR/build/linux/../../components/nordic/softdevice/s132/headers/ble_gap.h:2157: multiple definition of `m_fs'
binaries/app/SmartTag2/fds.c.o:(.fs_data+0x0): first defined here
binaries/app/SmartTag2/bleDrv.c.o:(.sdh_ble_observers1+0x8): undefined reference to `ble_db_discovery_on_ble_evt'
binaries/app/SmartTag2/bleDrv.c.o: In function `client_init':
/home/dcpl/Videos/Tack_Test_31_May/ToolChainSetup/coolR/build/linux/../../source/peripherals/bluetooth/bleDrv.c:2458: undefined reference to `ble_db_discovery_init'
binaries/app/SmartTag2/bleDrv.c.o: In function `on_ble_gap_evt_connected':
/home/dcpl/Videos/Tack_Test_31_May/ToolChainSetup/coolR/build/linux/../../source/peripherals/bluetooth/bleDrv.c:2542: undefined reference to `ble_db_discovery_start'
binaries/app/SmartTag2/amtc.c.o: In function `nrf_ble_amtc_init':
/home/dcpl/Videos/Tack_Test_31_May/ToolChainSetup/coolR/build/linux/../../source/peripherals/bluetooth/amtc.c:289: undefined reference to `ble_db_discovery_evt_register'
binaries/app/SmartTag2/ble_dfu.c.o: In function `ble_dfu_buttonless_bootloader_start_finalize':
/home/dcpl/Videos/Tack_Test_31_May/ToolChainSetup/coolR/build/linux/../../components/nordic/ble/ble_services/ble_dfu/ble_dfu.c:295: undefined reference to `nrf_pwr_mgmt_shutdown'
collect2: error: ld returned 1 exit status
../../components/nordic/toolchain/gcc/Makefile.common:292: recipe for target 'binaries/app/SmartTag2.out' failed
make: *** [binaries/app/SmartTag2.out] Error 1

also i am attaching my linker script.

please help me to resolved this error.

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

MEMORY
{
	/* Flash partitions */
/*	MBR				(rx)	:   ORIGIN = 0x00000000, LENGTH = 0x01000		/* Master Boot Record, size = 4KB  */
/*	SOFTDEVICE		(rx)	:   ORIGIN = 0x00001000, LENGTH = 0x1E000		/* Softdevice, size = 120KB */
	APPLICATION		(rx)	:	ORIGIN = 0x0001F000, LENGTH = 0x45000		/* Application, size = 340KB */
/*	BOOTLOADER		(rx)	:   ORIGIN = 0x00074000, LENGTH = 0x06000		/* Bootloader, size = 24KB */
/*	MBR_SETTING		(rw)	:   ORIGIN = 0x0007A000, LENGTH = 0x01000		/* MBR setting, size = 4KB */
	BL_SETTING		(rw)	:   ORIGIN = 0x0007B000, LENGTH = 0x01000		/* BL setting, size = 4KB */
	NVCONFIG		(rw)	:	ORIGIN = 0x0007C000, LENGTH = 0x04000		/* NVconfig, size = 16KB */
	

	/* RAM partitions */
/*	MBR_SD			(rw)	:	ORIGIN = 0x20000000, LENGTH = 0x2128		/* */
	RAM 			(rwx)	:	ORIGIN = 0x20002128, LENGTH = 0xAED8		/* */
	DM_RAM_BUFFER	(rwx)	:	ORIGIN = 0x2000D000, LENGTH = 0x1000		/* */	
	CONFIG 			(rwx) 	:	ORIGIN = 0x2000E000, LENGTH = 0x2000        /* */
}
/*
SECTIONS
{
	.config :
	{
		PROVIDE(__start_config = .);
	    KEEP(*(.config))
    	PROVIDE(__stop_config = .);
	} > CONFIG
}
*/
SECTIONS
{
  .config(NOLOAD) :
  {

  } > CONFIG
}

SECTIONS
{
  .dmRamBuffer(NOLOAD) :
  {

  } > DM_RAM_BUFFER
}

SECTIONS
{
   /* Place the bootloader settings page in flash. */
  .bootloaderSettings(NOLOAD) :
  {
	
  } > BL_SETTING
  .cli_sorted_cmd_ptrs :
  {
    PROVIDE(__start_cli_sorted_cmd_ptrs = .);
    KEEP(*(.cli_sorted_cmd_ptrs))
    PROVIDE(__stop_cli_sorted_cmd_ptrs = .);
  } > RAM
  .log_dynamic_data :
  {
    PROVIDE(__start_log_dynamic_data = .);
    KEEP(*(SORT(.log_dynamic_data*)))
    PROVIDE(__stop_log_dynamic_data = .);
  } > RAM
  .fs_data :
  {
    PROVIDE(__start_fs_data = .);
    KEEP(*(.fs_data))
    PROVIDE(__stop_fs_data = .);
  } > RAM
} INSERT AFTER .data;

SECTIONS
{
  .mem_section_dummy_rom :
  {
  }
  .sdh_soc_observers :
  {
    PROVIDE(__start_sdh_soc_observers = .);
    KEEP(*(SORT(.sdh_soc_observers*)))
    PROVIDE(__stop_sdh_soc_observers = .);
  } > APPLICATION
  .pwr_mgmt_data :
  {
    PROVIDE(__start_pwr_mgmt_data = .);
    KEEP(*(SORT(.pwr_mgmt_data*)))
    PROVIDE(__stop_pwr_mgmt_data = .);
  } > APPLICATION
  .sdh_ble_observers :
  {
    PROVIDE(__start_sdh_ble_observers = .);
    KEEP(*(SORT(.sdh_ble_observers*)))
    PROVIDE(__stop_sdh_ble_observers = .);
  } > APPLICATION
    .cli_command :
  {
    PROVIDE(__start_cli_command = .);
    KEEP(*(.cli_command))
    PROVIDE(__stop_cli_command = .);
  } > APPLICATION
  .log_const_data :
  {
    PROVIDE(__start_log_const_data = .);
    KEEP(*(SORT(.log_const_data*)))
    PROVIDE(__stop_log_const_data = .);
  } > APPLICATION
  .sdh_req_observers :
  {
    PROVIDE(__start_sdh_req_observers = .);
    KEEP(*(SORT(.sdh_req_observers*)))
    PROVIDE(__stop_sdh_req_observers = .);
  } > APPLICATION
  .sdh_state_observers :
  {
    PROVIDE(__start_sdh_state_observers = .);
    KEEP(*(SORT(.sdh_state_observers*)))
    PROVIDE(__stop_sdh_state_observers = .);
  } > APPLICATION
  .sdh_stack_observers :
  {
    PROVIDE(__start_sdh_stack_observers = .);
    KEEP(*(SORT(.sdh_stack_observers*)))
    PROVIDE(__stop_sdh_stack_observers = .);
  } > APPLICATION


} INSERT AFTER .text

INCLUDE "nrf52_common.ld"

Related