...section '.log_backends' will not fit in region ‘UNPLACED_SECTIONS’. (with flash_placement.xml)

Hi,

I encountered an error when I turned on NRF_LOG_BACKEND_RTT_ENABLED in a project: 

"...section '.log_backends' will not fit in region ‘UNPLACED_SECTIONS’."

"region 'UNPLACED_SECTIONS' overflowed by 16 bytes."

Here is the flash_placement.xml.

<!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="0x1000" load="Yes" name=".default_config" start="$(DEFAULT_CONFIG_START)" size="$(DEFAULT_CONFIG_SIZE)"/>
    <ProgramSection alignment="0x1000" load="Yes" name=".fConfig" start="$(FCONFIG_START)" size="$(FCONFIG_SIZE)"/>
    <ProgramSection alignment="4" load="Yes" name=".init" start="$(INIT_START)"/>
    <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="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=".dw_drivers" address_symbol="__dw_drivers_start" end_symbol="__dw_drivers_end" />
    <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=".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=".nrf_balloc" />
    <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>

Please help to check whether flash_placement.xml is incorrectly set or something else is wrong. Thank you!

Platform: Windows 10

IDE: SEGGER Embedded Studio for ARM Release 6.20a

Boards: nrf52840

Best wishes,

Joyop

Parents
  • Hi Yao Jiao, 
    I believe you need to add the section for the log backend into flash_placement.xml. 
    Something like this: 

    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />

    Please refer to the flash_placement.xml in one of our example in the SDK for example ble_app_hrs. 

Reply
  • Hi Yao Jiao, 
    I believe you need to add the section for the log backend into flash_placement.xml. 
    Something like this: 

    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />

    Please refer to the flash_placement.xml in one of our example in the SDK for example ble_app_hrs. 

Children
Related