Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

MDK update 8.53: interrupt vectors undefined

Hi.

I'm still using nRF5 SDK, version 17.0.2. And Keil uVision 5. I just updated to the latest Nordic MDK, version 8.53.1. Now I get linker errors for all of the IRQ handlers.

It seems the latest MDK replaces the old assembly language startup file with a C file called startup_nrf_common.c. The Keil compiler does not seem to like this change...

I get this warning during compilation:

C:\Keil_v5\ARM\PACK\NordicSemiconductor\nRF_DeviceFamilyPack\8.53.1\Device\Include\nrf52832_vectors.h(135): warning: #1296-D: extended constant initialiser used
(VECTOR_TABLE_Type)(__STACK_BASE),

So the compiler is warning about the vector table definition. And then the linker gives me "Undefined symbol" errors for all of the interrupt vectors.

If I downgrade the MDK to 8.52 it works again. But I'd like to be able to update if needed.

So is this an error in the new MDK? Or is this compiler just no longer supported?

Parents
  • Hi Markku, 

    If you simply compile an example in the SDK do you have the same problem? 

    If you do, please try testing with SDK v17.1 as well. I suspect that newer MDK might not compatible with older SDK. 

    Also please let us know which Keil compiler was used (Compiler v6 or compiler v5)

  • Ok, tried an example from SDK 17.1. Only changed the nRF_DeviceFamilyPack from Keil's pack manager. Got the same result.

    Here is the end of compilation output when trying to compile ble_app_uart example:

    compiling startup_nrf_common.c...
    C:\Keil_v5\ARM\PACK\NordicSemiconductor\nRF_DeviceFamilyPack\8.53.1\Device\Include\nrf_mem.h(121): warning:  #1-D: last line of file ends without a newline
      #endif
    C:\Keil_v5\ARM\PACK\NordicSemiconductor\nRF_DeviceFamilyPack\8.53.1\Device\Include\nrf52832_vectors.h(135): warning:  #1296-D: extended constant initialiser used
          (VECTOR_TABLE_Type)(__STACK_BASE),
    RTE\Device\nRF52832_xxAA\startup_nrf_common.c(237): warning:  #1-D: last line of file ends without a newline
      #endif
    RTE\Device\nRF52832_xxAA\startup_nrf_common.c: 3 warnings, 0 errors
    compiling SEGGER_RTT.c...
    compiling nrf_sdh_soc.c...
    compiling SEGGER_RTT_printf.c...
    compiling nrf_sdh_ble.c...
    compiling nrf_sdh.c...
    compiling system_nrf52.c...
    linking...
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol CCM_AAR_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol COMP_LPCOMP_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol ECB_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol FPU_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol I2S_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol MWU_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol NFCT_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol PDM_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol PWM0_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol PWM1_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol PWM2_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol QDEC_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol RADIO_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol RNG_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol RTC0_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol RTC2_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol SAADC_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol SPIM2_SPIS2_SPI2_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol SWI0_EGU0_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol SWI1_EGU1_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol SWI3_EGU3_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol SWI4_EGU4_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol SWI5_EGU5_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol TEMP_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol TIMER0_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol TIMER1_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol TIMER2_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol TIMER3_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol TIMER4_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol WDT_IRQHandler (referred from startup_nrf_common.o).
    .\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol __initial_sp (referred from entry2.o).
    Not enough information to list image symbols.
    Not enough information to list load addresses in the image map.
    Finished: 2 information, 0 warning and 33 error messages.
    ".\_build\nrf52832_xxaa.axf" - 33 Error(s), 3 Warning(s).
    Target not created.

  • Hi Markku, 
    I have reproduced the issue here and is checking internally. 
    I will get back to you when I have any update. 

Reply Children
Related