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

Try to run example flash_fds example on Nordic DK(10056), but meet

Hi Support, 

This issue happens in nRF5_SDK_16.0.0_98a08e2  and nRF5_SDK_15.3.0_59ac345.  

Directly import the example from SDK (examples\peripheral\flash_fds) into SES, build it and download to Nodic DK(10056). According to a serial port console, I could read, 


<info> app: FDS example started.
<info> app: Initializing fds...
<error> app: Fatal error
<warning> app: System reset
<info> app: FDS example started.
<info> app: Initializing fds...
<error> app: Fatal error
<warning> app: System reset

(repeating)

In debug tracing mode, I could find that the failure happened in ,

fds_init_opts_t init_opts = pages_init();

switch (init_opts)
{
case NO_PAGES:
case NO_SWAP:
return FDS_ERR_NO_PAGES;

I know there is a discussion in this forum 4 years ago, https://devzone.nordicsemi.com/f/nordic-q-a/13672/fstorage-memory-allocation-in-segger-embedded-studio/52240#52240

Just thinking if I could get a latest complete instruction (but not piece by piece) for such an issue? if any explanation, it would be better.

Thanks a lot. Attachment is my flash_placement.xml. Furthermore, I could read the elf file as well, partially attached here. 

S. 

<!DOCTYPE Linker_Placement_File>
<Root name="Flash Section Placement">
  <MemorySegment name="FLASH" start="$(FLASH_PH_START)" size="$(FLASH_PH_SIZE)">
    <ProgramSection load="no" name=".reserved_flash" start="$(FLASH_PH_START)" size="$(FLASH_START)-$(FLASH_PH_START)" />
    <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=".sdh_ble_observers" inputsections="*(SORT(.sdh_ble_observers*))" address_symbol="__start_sdh_ble_observers" end_symbol="__stop_sdh_ble_observers" />
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".cli_command" inputsections="*(.cli_command*)" address_symbol="__start_cli_command" end_symbol="__stop_cli_command" />
    <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=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
    <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=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
    <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=".cli_sorted_cmd_ptrs"  inputsections="*(.cli_sorted_cmd_ptrs*)" runin=".cli_sorted_cmd_ptrs_run"/>
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".fs_data"  inputsections="*(.fs_data*)" runin=".fs_data_run"/>
    <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 load="no" name=".reserved_ram" start="$(RAM_PH_START)" size="$(RAM_START)-$(RAM_PH_START)" />
    <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=".cli_sorted_cmd_ptrs_run" address_symbol="__start_cli_sorted_cmd_ptrs" end_symbol="__stop_cli_sorted_cmd_ptrs" />
    <ProgramSection alignment="4" keep="Yes" load="No" name=".fs_data_run" address_symbol="__start_fs_data" end_symbol="__stop_fs_data" />
    <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>

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x26375
  Start of program headers:          52 (bytes into file)
  Start of section headers:          1903760 (bytes into file)
  Flags:                             0x5000400, Version5 EABI, hard-float ABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         17
  Size of section headers:           40 (bytes)
  Number of section headers:         73
  Section header string table index: 72

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .reserved_ram     NOBITS          20000000 00b03c 002210 00  WA  0   0  1
  [ 2] .reserved_flash   NOBITS          00000000 000254 026000 00  WA  0   0  1
  [ 3] .vectors          PROGBITS        00026000 000254 000200 00  AX  0   0  4
  [ 4] .rel.vectors      REL             00000000 16ade4 0001b0 08   I 70   3  4
  [ 5] .init             PROGBITS        00026200 000454 0001d4 00  AX  0   0  4
  [ 6] .rel.init         REL             00000000 16af94 000140 08   I 70   5  4
  [ 7] .text             PROGBITS        000263d4 000628 007fe6 00 WAX  0   0  4
  [ 8] .rel.text         REL             00000000 16b0d4 002f48 08   I 70   7  4
  [ 9] .cli_command      PROGBITS        0002e3bc 008610 000070 00   A  0   0  4
  [10] .rel.cli_command  REL             00000000 16e01c 000070 08   I 70   9  4
  [11] .nrf_queue        PROGBITS        0002e42c 008680 00001c 00   A  0   0  4
  [12] .rel.nrf_queue    REL             00000000 16e08c 000020 08   I 70  11  4
  [13] .sdh_req_observer PROGBITS        0002e448 00869c 000008 00   A  0   0  4
  [14] .rel.sdh_req_obse REL             00000000 16e0ac 000008 08   I 70  13  4
  [15] .sdh_state_observ PROGBITS        0002e450 0086a4 000008 00   A  0   0  4
  [16] .rel.sdh_state_ob REL             00000000 16e0b4 000008 08   I 70  15  4
  [17] .sdh_stack_observ PROGBITS        0002e458 0086ac 000010 00   A  0   0  4
  [18] .rel.sdh_stack_ob REL             00000000 16e0bc 000010 08   I 70  17  4
  [19] .log_const_data   PROGBITS        0002e468 0086bc 000078 00   A  0   0  4
  [20] .rel.log_const_da REL             00000000 16e0cc 000078 08   I 70  19  4
  [21] .sdh_soc_observer PROGBITS        0002e4e0 008734 000008 00   A  0   0  4
  [22] .rel.sdh_soc_obse REL             00000000 16e144 000008 08   I 70  21  4
  [23] .log_backends     PROGBITS        0002e4e8 00873c 000020 00   A  0   0  4
  [24] .rel.log_backends REL             00000000 16e14c 000038 08   I 70  23  4
  [25] .nrf_balloc       PROGBITS        0002e508 00875c 000038 00   A  0   0  4
  [26] .rel.nrf_balloc   REL             00000000 16e184 000060 08   I 70  25  4
  [27] .cli_sorted_cmd_p PROGBITS        20002210 008794 000038 00  WA  0   0  4
  [28] .cli_sorted_cmd_p NOBITS          20002210 0087cc 000038 00  WA  0   0  1
  [29] .fs_data          PROGBITS        20002248 0087cc 000014 00  WA  0   0  4
  [30] .rel.fs_data      REL             00000000 16e1e4 000008 08   I 70  29  4
  [31] .fs_data_run      NOBITS          20002248 0087e0 000014 00  WA  0   0  1
  [32] .log_dynamic_data PROGBITS        2000225c 0087e0 00003c 00  WA  0   0  2
  [33] .log_dynamic_data NOBITS          2000225c 00881c 00003c 00  WA  0   0  1
  [34] .log_filter_data  PROGBITS        20002298 00881c 00003c 00  WA  0   0  4
  [35] .log_filter_data_ NOBITS          20002298 008858 00003c 00  WA  0   0  1
  [36] .rodata           PROGBITS        0002e604 008864 0026f8 00   A  0   0 16
  [37] .rel.rodata       REL             00000000 16e1ec 000960 08   I 70  36  4
  [38] .fast_run         PROGBITS        200022d4 00b03c 000000 00   W  0   0  1
  [39] .data             PROGBITS        200022d4 00af5c 0000e0 00  WA  0   0  4
  [40] .rel.data         REL             00000000 16eb4c 0000d8 08   I 70  39  4
  [41] .data_run         NOBITS          200022d4 00b03c 0000e0 00  WA  0   0  1
  [42] .tdata_run        PROGBITS        200023b4 00b03c 000000 00   W  0   0  1
  [43] .bss              NOBITS          200023b4 00b03c 000e0b 00  WA  0   0  4
  [44] .tbss             NOBITS          200031c0 00b03c 000004 00 WAT  0   0  4
  [45] .heap             NOBITS          200031c4 00b03c 000200 00  WA  0   0  1
  [46] .stack            NOBITS          2003c000 00b03c 004000 00  WA  0   0  1
  [47] .stack_process    PROGBITS        20040000 00b03c 000000 00   W  0   0  1
  [48] .ARM.attributes   ARM_ATTRIBUTES  00000000 00b03c 000035 00      0   0  1
  [49] .comment          PROGBITS        00000000 00b071 000043 01  MS  0   0  1
  [50] .debug_line       PROGBITS        00000000 00b0b4 01b589 00      0   0  1
  [51] .rel.debug_line   REL             00000000 16ec24 000c28 08   I 70  50  4
  [52] .debug_info       PROGBITS        00000000 02663d 03f83e 00      0   0  1
  [53] .rel.debug_info   REL             00000000 16f84c 026398 08   I 70  52  4
  [54] .debug_abbrev     PROGBITS        00000000 065e7b 008236 00      0   0  1
  [55] .debug_aranges    PROGBITS        00000000 06e0b8 000fd0 00      0   0  8
  [56] .rel.debug_arange REL             00000000 195be4 000d60 08   I 70  55  4
  [57] .debug_str        PROGBITS        00000000 06f088 0a2269 01  MS  0   0  1
  [58] .debug_ranges     PROGBITS        00000000 1112f8 003230 00      0   0  8
  [59] .rel.debug_ranges REL             00000000 196944 004d80 08   I 70  58  4
  [60] .debug_frame      PROGBITS        00000000 114528 003464 00      0   0  4
  [61] .rel.debug_frame  REL             00000000 19b6c4 001760 08   I 70  60  4
  [62] .debug_loc        PROGBITS        00000000 11798c 014980 00      0   0  1
  [63] .rel.debug_loc    REL             00000000 19ce24 013048 08   I 70  62  4
  [64] .debug_pubnames   PROGBITS        00000000 12c30c 00be40 00      0   0  1
  [65] .rel.debug_pubnam REL             00000000 1afe6c 000120 08   I 70  64  4
  [66] .debug_pubtypes   PROGBITS        00000000 13814c 009161 00      0   0  1
  [67] .rel.debug_pubtyp REL             00000000 1aff8c 000120 08   I 70  66  4
  [68] .debug_macro      PROGBITS        00000000 1412ad 01d701 00      0   0  1
  [69] .rel.debug_macro  REL             00000000 1b00ac 020910 08   I 70  68  4
  [70] .symtab           SYMTAB          00000000 15e9b0 0078d0 10     71 1325  4
  [71] .strtab           STRTAB          00000000 166280 004b63 00      0   0  1
  [72] .shstrtab         STRTAB          00000000 1d09bc 0002d2 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

There are no section groups in this file.

Parents Reply Children
No Data
Related