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

Output/Release/Exe/twi_sensor_pca10040.elf section `.nrf_queue' will not fit in region `UNPLACED_SECTIONS'

Im trying load a TWI sensor custom built with LIS3DH, and it is showing following error.

Building ‘twi_sensor_pca10040’ from solution ‘twi_sensor_pca10040’ in configuration ‘Release’
  'Output/twi_sensor_pca10040 Release/Obj/thumb_crt0.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_log_backend_rtt.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_log_backend_serial.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_log_backend_uart.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_log_default_backends.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_log_frontend.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_log_str_formatter.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/boards.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/app_error.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/app_error_handler_gcc.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/app_error_weak.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/app_util_platform.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_assert.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_atomic.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_balloc.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_fprintf.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_fprintf_format.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_memobj.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_ringbuf.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_strerror.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_drv_twi.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_drv_uart.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrfx_atomic.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrfx_prs.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrfx_twi.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrfx_twim.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrfx_uart.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrfx_uarte.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/lis2dh12.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_twi_mngr.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_twi_sensor.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/nrf_queue.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/app_gpiote.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/main.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/SEGGER_RTT.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/SEGGER_RTT_Syscalls_SES.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/SEGGER_RTT_printf.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/ses_startup_nrf52.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/ses_startup_nrf_common.o' is up to date
  'Output/twi_sensor_pca10040 Release/Obj/system_nrf52.o' is up to date
  Output/Release/Exe/twi_sensor_pca10040.elf does not exist.
  Generating linker script ‘twi_sensor_pca10040.ld’
  Linking twi_sensor_pca10040.elf
    Output/Release/Exe/twi_sensor_pca10040.elf section `.nrf_queue' will not fit in region `UNPLACED_SECTIONS'
    region `UNPLACED_SECTIONS' overflowed by 20 bytes
Build failed

The xml file looks as below

<!DOCTYPE Linker_Placement_File>
<Root name="Flash Section Placement">
  <MemorySegment name="FLASH" start="$(FLASH_PH_START)" size="$(FLASH_PH_SIZE)">
    <ProgramSection alignment="0x100" load="Yes" name=".vectors" start="$(FLASH_START)" />
    <ProgramSection alignment="4" load="Yes" name=".init" />
    <ProgramSection alignment="4" load="Yes" name=".init_rodata" />
    <ProgramSection alignment="4" load="Yes" name=".text" />
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_filter_data"  inputsections="*(SORT(.log_filter_data*))" runin=".log_filter_data_run"/>
    <ProgramSection alignment="4" load="Yes" name=".dtors" />
    <ProgramSection alignment="4" load="Yes" name=".ctors" />
    <ProgramSection alignment="4" load="Yes" name=".rodata" />
    <ProgramSection alignment="4" load="Yes" name=".ARM.exidx" address_symbol="__exidx_start" end_symbol="__exidx_end" />
    <ProgramSection alignment="4" load="Yes" runin=".fast_run" name=".fast" />
    <ProgramSection alignment="4" load="Yes" runin=".data_run" name=".data" />
    <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
  </MemorySegment>
  <MemorySegment name="RAM" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
    <ProgramSection alignment="0x100" load="No" name=".vectors_ram" start="$(RAM_START)" address_symbol="__app_ram_start__"/>
    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run" address_symbol="__start_nrf_sections_run" />
    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_dynamic_data_run" address_symbol="__start_log_dynamic_data" end_symbol="__stop_log_dynamic_data" />
    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_filter_data_run" address_symbol="__start_log_filter_data" end_symbol="__stop_log_filter_data" />
    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run_end" address_symbol="__end_nrf_sections_run" />
    <ProgramSection alignment="4" load="No" name=".fast_run" />
    <ProgramSection alignment="4" load="No" name=".data_run" />
    <ProgramSection alignment="4" load="No" name=".tdata_run" />
    <ProgramSection alignment="4" load="No" name=".bss" />
    <ProgramSection alignment="4" load="No" name=".tbss" />
    <ProgramSection alignment="4" load="No" name=".non_init" />
    <ProgramSection alignment="4" size="__HEAPSIZE__" load="No" name=".heap" />
    <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
    <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
  </MemorySegment>
</Root>

Can you kindly guide me, how to resolve this?

Parents
  • Hello,

    The problem is that the .nrf_queue section is not defined in your flash placement file. Please try to rebuild with the flash_placement.xml attached below.

    <!DOCTYPE Linker_Placement_File>
    <Root name="Flash Section Placement">
      <MemorySegment name="FLASH" start="$(FLASH_PH_START)" size="$(FLASH_PH_SIZE)">
        <ProgramSection alignment="0x100" load="Yes" name=".vectors" start="$(FLASH_START)" />
        <ProgramSection alignment="4" load="Yes" name=".init" />
        <ProgramSection alignment="4" load="Yes" name=".init_rodata" />
        <ProgramSection alignment="4" load="Yes" name=".text" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".pwr_mgmt_data" inputsections="*(SORT(.pwr_mgmt_data*))" address_symbol="__start_pwr_mgmt_data" end_symbol="__stop_pwr_mgmt_data" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_filter_data"  inputsections="*(SORT(.log_filter_data*))" runin=".log_filter_data_run"/>
        <ProgramSection alignment="4" load="Yes" name=".dtors" />
        <ProgramSection alignment="4" load="Yes" name=".ctors" />
        <ProgramSection alignment="4" load="Yes" name=".rodata" />
        <ProgramSection alignment="4" load="Yes" name=".ARM.exidx" address_symbol="__exidx_start" end_symbol="__exidx_end" />
        <ProgramSection alignment="4" load="Yes" runin=".fast_run" name=".fast" />
        <ProgramSection alignment="4" load="Yes" runin=".data_run" name=".data" />
        <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
      </MemorySegment>
      <MemorySegment name="RAM" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
        <ProgramSection alignment="0x100" load="No" name=".vectors_ram" start="$(RAM_START)" address_symbol="__app_ram_start__"/>
        <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run" address_symbol="__start_nrf_sections_run" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".log_dynamic_data_run" address_symbol="__start_log_dynamic_data" end_symbol="__stop_log_dynamic_data" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".log_filter_data_run" address_symbol="__start_log_filter_data" end_symbol="__stop_log_filter_data" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run_end" address_symbol="__end_nrf_sections_run" />
        <ProgramSection alignment="4" load="No" name=".fast_run" />
        <ProgramSection alignment="4" load="No" name=".data_run" />
        <ProgramSection alignment="4" load="No" name=".tdata_run" />
        <ProgramSection alignment="4" load="No" name=".bss" />
        <ProgramSection alignment="4" load="No" name=".tbss" />
        <ProgramSection alignment="4" load="No" name=".non_init" />
        <ProgramSection alignment="4" size="__HEAPSIZE__" load="No" name=".heap" />
        <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
        <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
      </MemorySegment>
    </Root>
    

Reply Children
No Data
Related