Utilize external flash with nrf9160 SiP on Custom board.

Hi,

I would like to use the external flash to increase the internal flash, no intention, at the moment, to use it for MCUBoot file or FOTA .

How do I configure it, if it is even possible.

Info:

- nRF Connect SDK: 2.0.0

- nrf9160 SiP on custom board.

- Flash commuincate over SPI.

- Flash is working.

Thanks in advance.

Parents
  • Hi,

    Yes, this is possible.

    On our nRF9160DK, we have an external flash, and you can see a sample for testing this at nRF9160: HTTP application update using the nRF9160DK's external flash.
    This sample is for v1.7.0, but it is possible to do the same for v2.0.0.

    Regards,
    Sigurd Hellesvik

  • Thank you.

    After setting up the external flash in the .overlay file:

    nordic,pm-ext-flash = &mx25r16;
    It builds fine but when running the program this is what I get:
    When getting the partition_manager_report:
    external_flash (0x200000 - 2048kB):
    +---------------------------------------------+
    | 0x0: mcuboot_secondary (0xe8000 - 928kB) |
    | 0xe8000: external_flash (0x118000 - 1120kB) |
    +---------------------------------------------+
    
    flash_primary (0x100000 - 1024kB):
    +--------------------------------------------------+
    | 0x0: mcuboot (0xc000 - 48kB) |
    | 0xc000: EMPTY_0 (0x4000 - 16kB) |
    +---0x10000: mcuboot_primary (0xe8000 - 928kB)-----+
    +---0x10000: tfm_secure (0xc200 - 48kB)------------+
    | 0x10000: mcuboot_pad (0x200 - 512B) |
    +---0x10200: mcuboot_primary_app (0xe7e00 - 927kB)-+
    | 0x10200: tfm (0xc000 - 48kB) |
    +---0x1c200: tfm_nonsecure (0xdbe00 - 879kB)-------+
    | 0x1c200: app (0xdbe00 - 879kB) |
    +---0xf8000: nonsecure_storage (0x2000 - 8kB)------+
    | 0xf8000: settings_storage (0x2000 - 8kB) |
    +--------------------------------------------------+
    | 0xfa000: EMPTY_1 (0x6000 - 24kB) |
    +--------------------------------------------------+
    
    otp (0x2f4 - 756B):
    +------------------------------+
    | 0xff8108: otp (0x2f4 - 756B) |
    +------------------------------+
    
    sram_primary (0x40000 - 256kB):
    +--------------------------------------------------+
    +---0x20000000: sram_secure (0x10000 - 64kB)-------+
    | 0x20000000: tfm_sram (0x10000 - 64kB) |
    +---0x20010000: sram_nonsecure (0x30000 - 192kB)---+
    +---0x20010000: nrf_modem_lib_sram (0x44e8 - 17kB)-+
    | 0x20010000: nrf_modem_lib_ctrl (0x4e8 - 1kB) |
    | 0x200104e8: nrf_modem_lib_tx (0x2000 - 8kB) |
    | 0x200124e8: nrf_modem_lib_rx (0x2000 - 8kB) |
    +--------------------------------------------------+
    | 0x200144e8: sram_primary (0x2bb18 - 174kB) |
    +--------------------------------------------------+
    When I tried to add this to the .prj file:
    CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=n
    This works as expected.
    My question is now; Is it possible to utilize the external flash compile time?
    The HTTP sample uses it run time, correct me if I'm wrong on that.
    Another question is: the external flash do not have the correct size, even though I have added the size to the spi setup in the .overlay file. Do I need to add a pm_static.yml for getting the correct sized configured?
  • Okay, I have misunderstood the purpose of the pm_static.yml file.

    Everything is building fine now and the partition_manager_report makes sense to me.

    But now I'm back to:

     

    I have been following along with this thread:  RE: MCUBoot, Zephyr, and static partition manager 

    There is a difference, I get an ERROR: Image in the primary slot is not valid! - So maybe there is an another problem.

    Hope you can help. 

  • In my experience, the warning  "W: Failed reading sectors; BOOT_MAX_IMG_SECTORS=128 - too small?" can mean two things:

    1. CONFIG_BOOT_MAX_IMG_SECTORS is too small. Try setting this to 256 in mcuboot.conf.
    2. The external flash driver has not been initialized for MCUboot.
      Have you configured Using external flash memory partitions, and more specifically, External flash memory partitions?

    Regards,
    Sigurd Hellesvik

  • CONFIG_BOOT_MAX_IMG_SECTORS is too small. Try setting this to 256 in mcuboot.conf.

    After trying this the runtime output is:

    I have read the links you are linking to.

    How to validate the external flash is initialized for MCUboot?

  • ...For the bus fault, try to configure CONFIG_THREAD_NAME to get a thread name instead of (unknown).

    For configurations for the external flash for the nRF9160, I recommend that you have a look at the configurations in https://github.com/simon-iversen/sdk-nrf/tree/d1a11f2c39e3b8fb0af7652e7e720626f0e1298e/samples/nrf9160/http_update/application_update/child_image/mcuboot. I am guessing that you are missing some of those to make it work, for example CONFIG_PM_PARTITION_SIZE_MCUBOOT,  CONFIG_FLASH or CONFIG_MULTITHREADING.

    Replay said:
    How to validate the external flash is initialized for MCUboot?

    Check the build/mcuboot/zephyr.dts to see that it is enabled in DTS.

    Then double check that you have all needed drivers enabled in the Kconfig. You can double check that these have been enabled by running "ninja menuconfig" inside build/mcuboot.

    Regards,
    Sigurd Hellesvik

  • Okay it builds fine but it enters a "Starting bootloader" loop.

    It will continue forever.

    Maybe the bootloader is placed at the first image slot?

Reply Children
  • Do you have logs in your application?

    For debugging, try to configure your application with CONFIG_RESET_ON_FATAL_ERROR=n.

    Do you still get a loop with this config?

    Regards,
    Sigurd Hellesvik

  • Due to a mistake from my side I did not save the state where is was stock in a endless "Starting bootloader" loop.

    I'm back to the BUS FAULT, as described above.

    But in my search for a solution for the endless "Starting bootloader" loop, I did find this:

     RE: nRF9160dk FOTA using external flash, ncs 2.0.2 

    Will it be the best idea to start using nRF Connect SDK version 2.3.0 for avoiding any problems relating to this? 

  • Good find!

    The potential issues mentioned in that thread should be fixed in future versions of the nRF Connect SDK.
    So yes, if it is possible for you, upgrading your project would likely be a good idea.

    Regards,
    Sigurd Hellesvik

  • Okay thank you.

    I have upgraded the SDK version from 2.0.0 to 2.3.0 and it builds fine and when I run it it, it gives this output:

    The only problem is that it never boot up the user app.

    I have added a more verbose logging:

    [00:00:00.379,150] <ESC><inf> NRFX_SPIM: Function: nrfx_spim_init, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.387,695] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x20005290 - rx_bufs 0x20005298 - 1<ESC><CR><LF>
    [00:00:00.398,315] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x200052a0 (2), current_rx 0x200052a0 (2), tx buf/len 0x20005288/1, rx buf/len 0x20005288/1<ESC><CR><LF>
    [00:00:00.414,123] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.421,630] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x200052d7/1<ESC><CR><LF>
    [00:00:00.430,114] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x200052d7/1<ESC><CR><LF>
    [00:00:00.438,629] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.446,746] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.454,254] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.462,310] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.470,367] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:00.479,644] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.487,792] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x200052a8 - rx_bufs 0x200052b0 - 1<ESC><CR><LF>
    [00:00:00.498,413] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x200052b8 (2), current_rx 0x200052b8 (2), tx buf/len 0x200052a0/1, rx buf/len 0x200052a0/1<ESC><CR><LF>
    [00:00:00.514,221] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.521,728] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x2000530c/3<ESC><CR><LF>
    [00:00:00.530,212] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x2000530c/3<ESC><CR><LF>
    [00:00:00.538,696] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.546,844] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.554,351] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.562,408] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.570,465] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:00.579,742] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    *** Booting Zephyr OS build v3.2.99-ncs2 ***<CR><LF>
    [00:00:00.591,949] <ESC><dbg> os: k_sched_unlock: scheduler unlocked (0x20000338:0)<ESC><CR><LF>
    [00:00:00.599,731] <ESC><inf> mcuboot: Starting bootloader<ESC><CR><LF>
    [00:00:00.605,804] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x20005238 - rx_bufs 0x20005240 - 1<ESC><CR><LF>
    [00:00:00.616,394] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x20005248 (2), current_rx 0x20005248 (2), tx buf/len 0x20005230/4, rx buf/len 0x20005230/4<ESC><CR><LF>
    [00:00:00.632,202] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.639,709] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x20001830/32<ESC><CR><LF>
    [00:00:00.648,284] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x20001830/32<ESC><CR><LF>
    [00:00:00.656,890] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.665,008] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.672,546] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.680,572] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.688,629] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:00.697,906] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.706,146] <ESC><inf> mcuboot: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3<ESC><CR><LF>
    [00:00:00.716,186] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x200051d8 - rx_bufs 0x200051e0 - 1<ESC><CR><LF>
    [00:00:00.726,837] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x200051e8 (2), current_rx 0x200051e8 (2), tx buf/len 0x200051d0/4, rx buf/len 0x200051d0/4<ESC><CR><LF>
    [00:00:00.742,645] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.750,152] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x20005238/16<ESC><CR><LF>
    [00:00:00.758,728] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x20005238/16<ESC><CR><LF>
    [00:00:00.767,303] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.775,451] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.782,958] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.790,985] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.799,041] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:00.808,319] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.816,497] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x200051d8 - rx_bufs 0x200051e0 - 1<ESC><CR><LF>
    [00:00:00.827,117] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x200051e8 (2), current_rx 0x200051e8 (2), tx buf/len 0x200051d0/4, rx buf/len 0x200051d0/4<ESC><CR><LF>
    [00:00:00.842,926] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.850,433] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x20005237/1<ESC><CR><LF>
    [00:00:00.858,917] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x20005237/1<ESC><CR><LF>
    [00:00:00.867,431] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.875,549] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.883,087] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.891,143] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.899,200] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:00.908,477] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.916,625] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x200051c8 - rx_bufs 0x200051d0 - 1<ESC><CR><LF>
    [00:00:00.927,246] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x200051d8 (2), current_rx 0x200051d8 (2), tx buf/len 0x200051c0/4, rx buf/len 0x200051c0/4<ESC><CR><LF>
    [00:00:00.943,084] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.950,592] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x20005292/1<ESC><CR><LF>
    [00:00:00.959,075] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x20005292/1<ESC><CR><LF>
    [00:00:00.967,559] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:00.975,677] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:00.983,215] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.991,241] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:00.999,298] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:01.008,575] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.016,754] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x200051c8 - rx_bufs 0x200051d0 - 1<ESC><CR><LF>
    [00:00:01.027,374] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x200051d8 (2), current_rx 0x200051d8 (2), tx buf/len 0x200051c0/4, rx buf/len 0x200051c0/4<ESC><CR><LF>
    [00:00:01.043,182] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.050,689] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x20005293/1<ESC><CR><LF>
    [00:00:01.059,173] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x20005293/1<ESC><CR><LF>
    [00:00:01.067,687] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.075,805] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.083,312] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.091,369] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.099,426] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:01.108,703] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.116,851] <ESC><inf> mcuboot: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3<ESC><CR><LF>
    [00:00:01.127,075] <ESC><inf> mcuboot: Boot source: none<ESC><CR><LF>
    [00:00:01.132,507] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x20005238 - rx_bufs 0x20005240 - 1<ESC><CR><LF>
    [00:00:01.143,127] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x20005248 (2), current_rx 0x20005248 (2), tx buf/len 0x20005230/4, rx buf/len 0x20005230/4<ESC><CR><LF>
    [00:00:01.158,935] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.166,442] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x20001830/32<ESC><CR><LF>
    [00:00:01.175,018] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x20001830/32<ESC><CR><LF>
    [00:00:01.183,624] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.191,741] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.199,249] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.207,305] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.215,362] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:01.224,639] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.232,818] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x200051f8 - rx_bufs 0x20005200 - 1<ESC><CR><LF>
    [00:00:01.243,408] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x20005208 (2), current_rx 0x20005208 (2), tx buf/len 0x200051f0/4, rx buf/len 0x200051f0/4<ESC><CR><LF>
    [00:00:01.259,216] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.266,723] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x20005258/16<ESC><CR><LF>
    [00:00:01.275,299] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x20005258/16<ESC><CR><LF>
    [00:00:01.283,905] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.292,022] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.299,530] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.307,586] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.315,643] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:01.324,920] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.333,099] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x200051f8 - rx_bufs 0x20005200 - 1<ESC><CR><LF>
    [00:00:01.343,719] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x20005208 (2), current_rx 0x20005208 (2), tx buf/len 0x200051f0/4, rx buf/len 0x200051f0/4<ESC><CR><LF>
    [00:00:01.359,527] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.367,034] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x20005257/1<ESC><CR><LF>
    [00:00:01.375,518] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x20005257/1<ESC><CR><LF>
    [00:00:01.384,033] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.392,150] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.399,658] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.407,714] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.415,771] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:01.425,048] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.433,227] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x200051e8 - rx_bufs 0x200051f0 - 1<ESC><CR><LF>
    [00:00:01.443,847] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x200051f8 (2), current_rx 0x200051f8 (2), tx buf/len 0x200051e0/4, rx buf/len 0x200051e0/4<ESC><CR><LF>
    [00:00:01.459,655] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.467,163] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x200052a2/1<ESC><CR><LF>
    [00:00:01.475,646] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x200052a2/1<ESC><CR><LF>
    [00:00:01.484,161] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.492,279] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.499,816] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.507,873] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.515,930] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:01.525,207] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.533,355] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: tx_bufs 0x200051e8 - rx_bufs 0x200051f0 - 1<ESC><CR><LF>
    [00:00:01.543,975] <ESC><dbg> spi_nrfx_spim: spi_context_buffers_setup: current_tx 0x200051f8 (2), current_rx 0x200051f8 (2), tx buf/len 0x200051e0/4, rx buf/len 0x200051e0/4<ESC><CR><LF>
    [00:00:01.559,783] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.567,291] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len 0x200052a3/1<ESC><CR><LF>
    [00:00:01.575,805] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len 0x200052a3/1<ESC><CR><LF>
    [00:00:01.584,289] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.592,407] <ESC><dbg> NRFX_SPIM: irq_handler: Event: NRF_SPIM_EVENT_END.<ESC><CR><LF>
    [00:00:01.599,945] <ESC><dbg> spi_nrfx_spim: spi_context_update_tx: tx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.608,001] <ESC><dbg> spi_nrfx_spim: spi_context_update_rx: rx buf/len (nil)/0<ESC><CR><LF>
    [00:00:01.616,058] <ESC><dbg> spi_nrfx_spim: transfer_next_chunk: Transaction finished with status 0<ESC><CR><LF>
    [00:00:01.625,335] <ESC><inf> NRFX_SPIM: Function: spim_xfer, error code: NRFX_SUCCESS.<ESC><CR><LF>
    [00:00:01.633,483] <ESC><inf> mcuboot: Swap type: none<ESC><CR><LF>
    [00:00:01.742,462] <ESC><inf> mcuboot: Bootloader chainload address offset: 0x10000<ESC><CR><LF>
    [00:00:01.750,213] <ESC><inf> mcuboot: Jumping to the first image slot<ESC><CR><LF>

  • When you build, do you have Debugging Options enabled?

    If you do, try to build without Debugging Options.

    Regards,
    Sigurd Hellesvik

Related