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

'NRF_DRV_SPI_INSTANCE_1' undeclared here (not in a function) but sdk_config.h looks correct

Hi,

I am getting these compilation errors:

'NRF_DRV_SPI_INSTANCE_1' undeclared here (not in a function); did you mean 'NRF_DRV_SPI_INSTANCE_'?

'NRF_DRV_TWI_INSTANCE_0' undeclared here (not in a function); did you mean 'NRF_DRV_TWI_INSTANCE_'?

'NRFX_RTC2_INST_IDX' undeclared here (not in a function); did you mean 'NRFX_RTC_INT_TICK'?

However, after comparing my sdk_config.h with the ones in the SDK examples, I cannot find any differences... 

I have uploaded my files ti this bitbucket repo https://bitbucket.org/asl07/rui_asl07/src/master/

Any help would be very much appreciated.

Kind regards,

Adrian

  • Hi Adrian.

    Which SDK are you using?

    Best regards,

    Andreas

  • Hi.

    Try to edit the following in sdk_config.h:

    // <e> SPI0_ENABLED - Enable SPI0 instance
    //==========================================================
    #ifndef SPI0_ENABLED
    #define SPI0_ENABLED 1
    #endif
    
    
    #ifndef NRFX_SPI0_ENABLED
    #define NRFX_SPI0_ENABLED 1
    #endif
    
    #ifndef NRFX_RTC2_ENABLED
    #define NRFX_RTC2_ENABLED 1
    #endif

    Best regards,

    Andreas

  • Thanks,

    That fixed those issues, I had to enable also UART in the sdk_config.h 

    However, after doing this, I am getting other errors:

      Linking rui_s132.elf
        Output/rui_s132 Release/Obj/nrfx_spim.o: In function `nrf_spim_event_check':
        multiple definition of `SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler'
        /Users/Santos/code/nRF5_SDK_15.0.0/modules/nrfx/drivers/src/nrfx_twim.c:660: first defined here
        Output/Release/Exe/rui_s132.elf section `.init' will not fit in region `UNPLACED_SECTIONS'
        region `UNPLACED_SECTIONS' overflowed by 42804 bytes
        Output/rui_s132 Release/Obj/thumb_crt0.o: In function `memory_set':
        (.init+0xdc): undefined reference to `__stack_end__'
        (.init+0xe0): undefined reference to `__stack_start__'
        (.init+0xe4): undefined reference to `__stack_process_end__'
        (.init+0xe8): undefined reference to `__stack_process_start__'
        (.init+0xec): undefined reference to `__data_load_start__'
        (.init+0xf0): undefined reference to `__data_start__'
        (.init+0xf4): undefined reference to `__data_end__'
        (.init+0xf8): undefined reference to `__text_load_start__'
        (.init+0xfc): undefined reference to `__text_start__'
        (.init+0x100): undefined reference to `__text_end__'
        (.init+0x104): undefined reference to `__fast_load_start__'
        (.init+0x108): undefined reference to `__fast_start__'
        (.init+0x10c): undefined reference to `__fast_end__'
        (.init+0x110): undefined reference to `__ctors_load_start__'
        (.init+0x114): undefined reference to `__ctors_start__'
        (.init+0x118): undefined reference to `__ctors_end__'
        (.init+0x11c): undefined reference to `__dtors_load_start__'
        (.init+0x120): undefined reference to `__dtors_start__'
        (.init+0x124): undefined reference to `__dtors_end__'
        (.init+0x128): undefined reference to `__rodata_load_start__'
        (.init+0x12c): undefined reference to `__rodata_start__'
        (.init+0x130): undefined reference to `__rodata_end__'
        (.init+0x134): undefined reference to `__tdata_load_start__'
        (.init+0x138): undefined reference to `__tdata_start__'
        (.init+0x13c): undefined reference to `__tdata_end__'
        (.init+0x140): undefined reference to `__bss_start__'
        (.init+0x144): undefined reference to `__bss_end__'
        (.init+0x148): undefined reference to `__tbss_start__'
        (.init+0x14c): undefined reference to `__tbss_end__'
        (.init+0x150): undefined reference to `__heap_start__'
        (.init+0x154): undefined reference to `__heap_end__'
        Output/rui_s132 Release/Obj/ses_nRF_Startup.o: In function `InitializeUserMemorySections':
        (.init+0x4c): undefined reference to `__start_nrf_sections'
        (.init+0x50): undefined reference to `__start_nrf_sections_run'
        (.init+0x54): undefined reference to `__end_nrf_sections_run'
        Output/rui_s132 Release/Obj/ses_nrf52_Vectors.o: In function `_vectors':
        (.vectors+0x0): undefined reference to `__stack_end__'
        Output/rui_s132 Release/Obj/fds.o: In function `gc_page_erase':
        fds.c:(.text.gc_page_erase+0x1a): undefined reference to `nrf_fstorage_erase'
        Output/rui_s132 Release/Obj/fds.o: In function `page_tag_write_swap':
        fds.c:(.text.page_tag_write_swap+0x10): undefined reference to `nrf_fstorage_write'
        Output/rui_s132 Release/Obj/fds.o: In function `page_tag_write_data':
        fds.c:(.text.page_tag_write_data+0xe): undefined reference to `nrf_fstorage_write'
        Output/rui_s132 Release/Obj/fds.o: In function `record_header_flag_dirty':
        fds.c:(.text.record_header_flag_dirty+0x10): undefined reference to `nrf_fstorage_write'
        Output/rui_s132 Release/Obj/fds.o: In function `gc_record_copy':
        fds.c:(.text.gc_record_copy+0x22): undefined reference to `nrf_fstorage_write'
        Output/rui_s132 Release/Obj/fds.o: In function `queue_process':
        fds.c:(.text.queue_process+0xe6): undefined reference to `nrf_fstorage_erase'
        fds.c:(.text.queue_process+0x1c6): undefined reference to `nrf_fstorage_write'
        Output/rui_s132 Release/Obj/fds.o: In function `fds_init':
        fds.c:(.text.fds_init+0x66): undefined reference to `nrf_fstorage_init'
        Output/rui_s132 Release/Obj/app_timer_freertos.o: In function `app_timer_callback':
        app_timer_freertos.c:(.text.app_timer_callback+0x2): undefined reference to `pvTimerGetTimerID'
        Output/rui_s132 Release/Obj/app_timer_freertos.o: In function `app_timer_create':
        app_timer_freertos.c:(.text.app_timer_create+0x2e): undefined reference to `xTimerCreate'
        Output/rui_s132 Release/Obj/app_timer_freertos.o: In function `app_timer_start':
        app_timer_freertos.c:(.text.app_timer_start+0x2e): undefined reference to `xTimerGenericCommand'
        app_timer_freertos.c:(.text.app_timer_start+0x42): undefined reference to `xTimerIsTimerActive'
        app_timer_freertos.c:(.text.app_timer_start+0x60): undefined reference to `xTimerGenericCommand'
        app_timer_freertos.c:(.text.app_timer_start+0x76): undefined reference to `xTimerGenericCommand'
        app_timer_freertos.c:(.text.app_timer_start+0xaa): undefined reference to `xTimerGenericCommand'
        Output/rui_s132 Release/Obj/app_timer_freertos.o: In function `app_timer_stop':
        app_timer_freertos.c:(.text.app_timer_stop+0x1a): undefined reference to `xTimerGenericCommand'
        app_timer_freertos.c:(.text.app_timer_stop+0x4c): undefined reference to `xTimerGenericCommand'
        Output/rui_s132 Release/Obj/main.o: In function `sleep_mode_enter':
        main.c:(.text.sleep_mode_enter+0xe): undefined reference to `bsp_btn_ble_sleep_mode_prepare'
        Output/rui_s132 Release/Obj/ble_advertising.o: In function `ble_advertising_start':
        ble_advertising.c:(.text.ble_advertising_start+0x12): undefined reference to `nrf_fstorage_is_busy'
        Output/rui_s132 Release/Obj/nrf_sdh.o:(.rodata.sdh_req_observers+0x0): undefined reference to `__start_sdh_req_observers'
        Output/rui_s132 Release/Obj/nrf_sdh.o:(.rodata.sdh_req_observers+0x4): undefined reference to `__stop_sdh_req_observers'
        Output/rui_s132 Release/Obj/nrf_sdh.o:(.rodata.sdh_stack_observers+0x0): undefined reference to `__start_sdh_stack_observers'
        Output/rui_s132 Release/Obj/nrf_sdh.o:(.rodata.sdh_stack_observers+0x4): undefined reference to `__stop_sdh_stack_observers'
        Output/rui_s132 Release/Obj/nrf_sdh.o:(.rodata.sdh_state_observers+0x0): undefined reference to `__start_sdh_state_observers'
        Output/rui_s132 Release/Obj/nrf_sdh.o:(.rodata.sdh_state_observers+0x4): undefined reference to `__stop_sdh_state_observers'
        Output/rui_s132 Release/Obj/nrf_sdh_ble.o: In function `nrf_sdh_ble_default_cfg_set':
        nrf_sdh_ble.c:(.text.nrf_sdh_ble_default_cfg_set+0xd0): undefined reference to `__app_ram_start__'
        Output/rui_s132 Release/Obj/tasks.o: In function `prvAddCurrentTaskToDelayedList':
        tasks.c:(.text.prvAddCurrentTaskToDelayedList+0x10): undefined reference to `uxListRemove'
        tasks.c:(.text.prvAddCurrentTaskToDelayedList+0x5e): undefined reference to `vListInsert'
        tasks.c:(.text.prvAddCurrentTaskToDelayedList+0x3a): undefined reference to `vListInsertEnd'
        tasks.c:(.text.prvAddCurrentTaskToDelayedList+0x52): undefined reference to `vListInsert'
        Output/rui_s132 Release/Obj/tasks.o: In function `xTaskCreate':
        tasks.c:(.text.xTaskCreate+0x12): undefined reference to `pvPortMalloc'
        tasks.c:(.text.xTaskCreate+0x20): undefined reference to `pvPortMalloc'
        tasks.c:(.text.xTaskCreate+0x76): undefined reference to `vListInitialiseItem'
        tasks.c:(.text.xTaskCreate+0x82): undefined reference to `vListInitialiseItem'
        tasks.c:(.text.xTaskCreate+0x9a): undefined reference to `pxPortInitialiseStack'
        tasks.c:(.text.xTaskCreate+0xa4): undefined reference to `vPortEnterCritical'
        tasks.c:(.text.xTaskCreate+0xcc): undefined reference to `vListInitialise'
        tasks.c:(.text.xTaskCreate+0xd2): undefined reference to `vListInitialise'
        tasks.c:(.text.xTaskCreate+0xd8): undefined reference to `vListInitialise'
        tasks.c:(.text.xTaskCreate+0xde): undefined reference to `vListInitialise'
        tasks.c:(.text.xTaskCreate+0xe4): undefined reference to `vListInitialise'
        Output/rui_s132 Release/Obj/tasks.o:tasks.c:(.text.xTaskCreate+0xea): more undefined references to `vListInitialise' follow
        Output/rui_s132 Release/Obj/tasks.o: In function `xTaskCreate':
        tasks.c:(.text.xTaskCreate+0x126): undefined reference to `vListInsertEnd'
        tasks.c:(.text.xTaskCreate+0x12a): undefined reference to `vPortExitCritical'
        tasks.c:(.text.xTaskCreate+0x158): undefined reference to `vPortFree'
        Output/rui_s132 Release/Obj/tasks.o: In function `xTaskResumeFromISR':
        tasks.c:(.text.xTaskResumeFromISR+0x3a): undefined reference to `uxListRemove'
        tasks.c:(.text.xTaskResumeFromISR+0x56): undefined reference to `vListInsertEnd'
        Output/rui_s132 Release/Obj/tasks.o: In function `vTaskStartScheduler':
        tasks.c:(.text.vTaskStartScheduler+0x1a): undefined reference to `xTimerCreateTimerTask'
        tasks.c:(.text.vTaskStartScheduler+0x3e): undefined reference to `xPortStartScheduler'
        Output/rui_s132 Release/Obj/tasks.o: In function `xTaskIncrementTick':
        tasks.c:(.text.xTaskIncrementTick+0x90): undefined reference to `uxListRemove'
        tasks.c:(.text.xTaskIncrementTick+0x9c): undefined reference to `uxListRemove'
        tasks.c:(.text.xTaskIncrementTick+0xbe): undefined reference to `vListInsertEnd'
        Output/rui_s132 Release/Obj/tasks.o: In function `xTaskResumeAll':
        tasks.c:(.text.xTaskResumeAll+0x4): undefined reference to `vPortEnterCritical'
        tasks.c:(.text.xTaskResumeAll+0x16): undefined reference to `vPortExitCritical'
        tasks.c:(.text.xTaskResumeAll+0x3e): undefined reference to `uxListRemove'
        tasks.c:(.text.xTaskResumeAll+0x44): undefined reference to `uxListRemove'
        tasks.c:(.text.xTaskResumeAll+0x5e): undefined reference to `vListInsertEnd'
        Output/rui_s132 Release/Obj/tasks.o: In function `prvIdleTask':
        tasks.c:(.text.prvIdleTask+0x3e): undefined reference to `vPortSuppressTicksAndSleep'
        tasks.c:(.text.prvIdleTask+0x48): undefined reference to `vPortEnterCritical'
        tasks.c:(.text.prvIdleTask+0x52): undefined reference to `uxListRemove'
        tasks.c:(.text.prvIdleTask+0x62): undefined reference to `vPortExitCritical'
        tasks.c:(.text.prvIdleTask+0x68): undefined reference to `vPortFree'
        tasks.c:(.text.prvIdleTask+0x6e): undefined reference to `vPortFree'
        Output/rui_s132 Release/Obj/tasks.o: In function `vTaskSuspend':
        tasks.c:(.text.vTaskSuspend+0x6): undefined reference to `vPortEnterCritical'
        tasks.c:(.text.vTaskSuspend+0x12): undefined reference to `uxListRemove'
        tasks.c:(.text.vTaskSuspend+0x3a): undefined reference to `uxListRemove'
        tasks.c:(.text.vTaskSuspend+0x44): undefined reference to `vListInsertEnd'
        tasks.c:(.text.vTaskSuspend+0x56): undefined reference to `vPortExitCritical'
        tasks.c:(.text.vTaskSuspend+0x5e): undefined reference to `vPortEnterCritical'
        tasks.c:(.text.vTaskSuspend+0x66): undefined reference to `vPortExitCritical'
        Output/rui_s132 Release/Obj/test_task.o: In function `test_task':
        test_task.c:(.text.test_task+0x1c): undefined reference to `power_save_close'
        test_task.c:(.text.test_task+0x54): undefined reference to `power_save_open'
        /Applications/SEGGER Embedded Studio for ARM 4.12/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(libc2.o): In function `malloc':
        libc2.c:(.text.libc.malloc+0x88): undefined reference to `__heap_end__'
        libc2.c:(.text.libc.malloc+0x8c): undefined reference to `__heap_start__'
        /Applications/SEGGER Embedded Studio for ARM 4.12/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(libc2.o): In function `free':
        libc2.c:(.text.libc.free+0xbc): undefined reference to `__heap_start__'
        libc2.c:(.text.libc.free+0xc0): undefined reference to `__heap_end__'
        /Applications/SEGGER Embedded Studio for ARM 4.12/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(libc2.o):(.data.libc.heap+0x0): undefined reference to `__heap_start__'
    Build failed

    Could you have a look at them? I have updated the repo and the link in the first comment (older link is to a different repo)

    Best regards

  • Hi.

    multiple definition of `SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler'
    

    Are you trying to use SPI and TWI at the same time? This will not work, you can only use one at a time.

    Best regards,

    Andreas

Related