Problems with port project to SES, section `.text.nrf_drv_spi_transfer' will not fit in region `UNPLACED_SECTIONS'

Hello,

I try to port project from IAR to Segger Studio. I followed the guides for porting projects like this and this. So, I did:

- Imported IAR project to SES with internal wizard;

- Configured preprocessor settings.

And after that, the project compiled.

Next, I try to configure linker.

- I added Ses_sturtup_nrf52.s, system_nrf52.c, thumb_crt0.s

- Added flash_placement.xml

- changed memory segments as it was in IAR project.

But linker doesn't work.

I have some errors:

  Generating linker script ‘my_prj.ld’
  Linking my_prj.elf
    _build/my_prj.elf section `.text.nrf_drv_spi_transfer' will not fit in region `UNPLACED_SECTIONS'
    region `UNPLACED_SECTIONS' overflowed by 92232 bytes
    cannot find entry symbol reset_handler; not setting start address
    _build/main.o: in function `main':
    main.c:(.text.main+0x278): undefined reference to `__start_log_const_data'
    _build/main.o: in function `start_timer':
    main.c:(.text.start_timer+0x60): undefined reference to `__start_log_const_data'
    _build/nrf_sdh.o:(.rodata.sdh_req_observers+0x0): undefined reference to `__start_sdh_req_observers'
    _build/nrf_sdh.o:(.rodata.sdh_req_observers+0x4): undefined reference to `__stop_sdh_req_observers'
    _build/nrf_sdh.o:(.rodata.sdh_state_observers+0x0): undefined reference to `__start_sdh_state_observers'
    _build/nrf_sdh.o:(.rodata.sdh_state_observers+0x4): undefined reference to `__stop_sdh_state_observers'
    _build/nrf_sdh.o:(.rodata.sdh_stack_observers+0x0): undefined reference to `__start_sdh_stack_observers'
    _build/nrf_sdh.o:(.rodata.sdh_stack_observers+0x4): undefined reference to `__stop_sdh_stack_observers'
    _build/nrf_pwr_mgmt.o:(.rodata.pwr_mgmt_data+0x0): undefined reference to `__start_pwr_mgmt_data'
    _build/nrf_pwr_mgmt.o:(.rodata.pwr_mgmt_data+0x4): undefined reference to `__stop_pwr_mgmt_data'
   ...
   
    my_ble.c:(.text.BLE_Send+0xf0): undefined reference to `__start_log_const_data'
    _build/ses_startup_nrf52.o: in function `_vectors':
    (.vectors+0x0): undefined reference to `__stack_end__'
    _build/ses_startup_nrf_common.o: in function `afterInitialize':
    (.init+0x1c): undefined reference to `__RAM_segment_end__'
    _build/thumb_crt0.o: in function `memory_set':
    (.init+0xd4): undefined reference to `__stack_end__'
    (.init+0xd8): undefined reference to `__stack_start__'
    (.init+0xdc): undefined reference to `__stack_process_end__'
    (.init+0xe0): undefined reference to `__stack_process_start__'
    (.init+0xe4): undefined reference to `__data_load_start__'
    (.init+0xe8): undefined reference to `__data_start__'
    (.init+0xec): undefined reference to `__data_end__'
    (.init+0xf0): undefined reference to `__text_load_start__'
    (.init+0xf4): undefined reference to `__text_start__'
    (.init+0xf8): undefined reference to `__text_end__'
    (.init+0xfc): undefined reference to `__fast_load_start__'
    (.init+0x100): undefined reference to `__fast_start__'
    (.init+0x104): undefined reference to `__fast_end__'
    (.init+0x108): undefined reference to `__ctors_load_start__'
    (.init+0x10c): undefined reference to `__ctors_start__'
    (.init+0x110): undefined reference to `__ctors_end__'
    (.init+0x114): undefined reference to `__dtors_load_start__'
    (.init+0x118): undefined reference to `__dtors_start__'
    (.init+0x11c): undefined reference to `__dtors_end__'
    (.init+0x120): undefined reference to `__rodata_load_start__'
    (.init+0x124): undefined reference to `__rodata_start__'
    (.init+0x128): undefined reference to `__rodata_end__'
    (.init+0x12c): undefined reference to `__tdata_load_start__'
    (.init+0x130): undefined reference to `__tdata_start__'
    (.init+0x134): undefined reference to `__tdata_end__'
    (.init+0x138): undefined reference to `__bss_start__'
    (.init+0x13c): undefined reference to `__bss_end__'
    (.init+0x140): undefined reference to `__tbss_start__'
    (.init+0x144): undefined reference to `__tbss_end__'
    (.init+0x148): undefined reference to `__heap_start__'
    (.init+0x14c): undefined reference to `__heap_end__'
    _build/nrf_ble_gatt.o: in function `data_length_update':
    nrf_ble_gatt.c:(.text.data_length_update+0xe8): undefined reference to `__start_log_const_data'
    _build/app_error_weak.o: in function `app_error_fault_handler':
    app_error_weak.c:(.text.app_error_fault_handler+0x134): undefined reference to `__start_log_const_data'
    _build/nrf_fstorage.o: in function `nrf_fstorage_init':
    nrf_fstorage.c:(.text.nrf_fstorage_init+0x7c): undefined reference to `__start_log_const_data'
    _build/nrf_log_frontend.o: in function `nrf_log_init':
    nrf_log_frontend.c:(.text.nrf_log_init+0x60): undefined reference to `__stop_log_const_data'
    nrf_log_frontend.c:(.text.nrf_log_init+0x64): undefined reference to `__start_log_const_data'
    _build/nrf_log_frontend.o: in function `nrf_log_module_cnt_get':
    nrf_log_frontend.c:(.text.nrf_log_module_cnt_get+0xc): undefined reference to `__stop_log_const_data'
    nrf_log_frontend.c:(.text.nrf_log_module_cnt_get+0x10): undefined reference to `__start_log_const_data'
    _build/nrf_log_frontend.o: in function `module_idx_get':
    nrf_log_frontend.c:(.text.module_idx_get+0x60): undefined reference to `__start_log_dynamic_data'
    _build/nrf_log_frontend.o: in function `nrf_log_module_name_get':
    nrf_log_frontend.c:(.text.nrf_log_module_name_get+0x3c): undefined reference to `__start_log_const_data'
    _build/nrf_log_frontend.o: in function `nrf_log_color_id_get':
    nrf_log_frontend.c:(.text.nrf_log_color_id_get+0x6c): undefined reference to `__start_log_const_data'
    _build/nrf_log_frontend.o: in function `nrf_log_frontend_dequeue':
    nrf_log_frontend.c:(.text.nrf_log_frontend_dequeue+0x3a4): undefined reference to `__start_log_const_data'
    _build/nrf_sdh_ble.o: in function `nrf_sdh_ble_app_ram_start_get':
    nrf_sdh_ble.c:(.text.nrf_sdh_ble_app_ram_start_get+0x20): undefined reference to `__app_ram_start__'
    _build/nrf_sdh_ble.o: in function `nrf_sdh_ble_default_cfg_set':
    nrf_sdh_ble.c:(.text.nrf_sdh_ble_default_cfg_set+0x204): undefined reference to `__start_log_const_data'
    _build/nrf_sdh_ble.o: in function `nrf_sdh_ble_enable':
    nrf_sdh_ble.c:(.text.nrf_sdh_ble_enable+0xac): undefined reference to `__start_log_const_data'
Build failed

 

what am I doing wrong?

Help me, please

Regards,

Ivan

  • Hi Ivan 

    Can you go to your project settings and to the linker section "memory segments" and check whether it's called FLASH or FLASH1. It's important that this matches what it's called in the flash_placement.xml, and an (unfortunate) bug when porting projects to SES is that these don't match by default for some reason and that would result in an "UNPLACED_SECTIONS" error. Please make sure that these are both called FLASH1.

    Best regards,

    Simon

Related