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

Error: L6200E: Symbol SEGGER_RTT

Hi,

I am trying to attempt the RTT tutorial and I am not able to complete the first task.

I have included the SEGGER_RTT.h deader file, copied RTT and Syscalls folders to the right place and also added the .c file to the RTT in the project.

When I try to BUILD the project I get this error. What is it?

Please help, Thanks

*** Using Compiler 'V5.06 update 2 (build 183)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'nrf51422_xxac_s130'
compiling main.c...
linking...
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_ConfigDownBuffer multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_ConfigUpBuffer multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_GetKey multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_HasKey multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_Init multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_Read multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_SetTerminal multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_TerminalOut multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_WaitKey multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_Write multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
.\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_WriteString multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 2 information, 0 warning and 11 error messages.
".\_build\nrf51422_xxac_s130.axf" - 11 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed:  00:00:02
  • Hi,

    This thread has some comments that may be useful. Likely you have #included the same file multiple places.

    Øyvind

  • Thanks for the quick reply Øyvind. I tried to add the methods discussed in the post but still can not resolve the issue.

    I have

    1. added another .c file to the RTT group i.e. SEGGER_rtt_printf.c
    2. added another include lib i.e. #include "SEGGER_RTT_Conf.h"
    3. I have replaced the files at C:\Users\Arsalan\Desktop\Engineering\Devices\nRF51822\SDK\sdk11\external\segger_rtt with the files I downloaded from the zip file mentioned in the tutorial.

    My build result is as follows.

    *** Using Compiler 'V5.06 update 2 (build 183)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
    Rebuild target 'nrf51422_xxac_s130'
    compiling bsp.c...
    compiling bsp_btn_ble.c...
    compiling main.c...
    compiling ble_conn_params.c...
    compiling ble_advertising.c...
    compiling ble_advdata.c...
    compiling ble_nus.c...
    compiling app_uart_fifo.c...
    compiling ble_srv_common.c...
    compiling nrf_delay.c...
    compiling nrf_drv_common.c...
    compiling nrf_drv_gpiote.c...
    compiling nrf_drv_uart.c...
    compiling pstorage.c...
    compiling app_button.c...
    compiling app_error.c...
    compiling app_error_weak.c...
    compiling app_fifo.c...
    compiling app_util_platform.c...
    compiling fstorage.c...
    compiling app_timer.c...
    compiling nrf_assert.c...
    compiling RTT_Syscalls_KEIL.c...
    compiling nrf_log.c...
    compiling retarget.c...
    compiling SEGGER_RTT.c...
    compiling SEGGER_RTT_printf.c...
    ..\..\..\..\..\..\external\segger_rtt\SEGGER_RTT_printf.c(300): warning:  #111-D: statement is unreachable
              default:  goto FilterFieldWidth;                   break;
    ..\..\..\..\..\..\external\segger_rtt\SEGGER_RTT_printf.c: 1 warning, 0 errors
    compiling SEGGER_RTT.c...
    assembling arm_startup_nrf51.s...
    compiling SEGGER_RTT_printf.c...
    C:\Keil_v5\ARM\PACK\NordicSemiconductor\RTT\SEGGER_RTT_printf.c(300): warning:  #111-D: statement is unreachable
              default:  goto FilterFieldWidth;                   break;
    C:\Keil_v5\ARM\PACK\NordicSemiconductor\RTT\SEGGER_RTT_printf.c: 1 warning, 0 errors
    compiling softdevice_handler.c...
    compiling system_nrf51.c...
    linking...
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_WriteString multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_Write multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_ConfigDownBuffer multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_ConfigUpBuffer multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_GetKey multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_HasKey multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_Init multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_Read multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_SetTerminal multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_TerminalOut multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_WaitKey multiply defined (by .\_build\segger_rtt_1.o and .\_build\segger_rtt.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_printf multiply defined (by .\_build\segger_rtt_printf_1.o and .\_build\segger_rtt_printf.o).
    .\_build\nrf51422_xxac_s130.axf: Error: L6200E: Symbol SEGGER_RTT_vprintf multiply defined (by .\_build\segger_rtt_printf_1.o and .\_build\segger_rtt_printf.o).
    Not enough information to list image symbols.
    Not enough information to list the image map.
    Finished: 2 information, 0 warning and 13 error messages.
    ".\_build\nrf51422_xxac_s130.axf" - 13 Error(s), 2 Warning(s).
    Target not created.
    Build Time Elapsed:  00:00:09
    

    Please help Thanks

  • Well, you're getting more errors, try removing some of the includes. You are having issues with multiple definitions.

  • Its not about the includes. Even when I comment off all the includes and the RTT main command, the error stays.

    It is something to do with SEGGER_RTT.c and SEGGER_RTT_printf.c files we added to the RTT Group.

  • SDK 11 has innate support for RTT without needing to include additional files, I think this is why you are seeing this error. Please see this section in the infocenter.

    Øyvind

Related