sample nCS code to evaluate DFU-OTA on nRF52833

Hi,

I am working on an application to transfer firmware file via BLE-GATT to nRF52833. 
Can you kindly suggest any sample code for me to evaluate.

Thanks,

Ubaid

Parents Reply
  • Hello ,

    ct using the guide

    With the project I build from your suggested guide:

    I got the following three build/output files at build paths:

    1. build/zephyr/zephyr.hex: only application

    2. build/mcuboot/zephyr/zephyr.hex: only mcuboot

    3. build/zephyr/merged.hex: mcuboot+application

    Out of these three, I am to understand If I flash the first build file, it will flash only application.
    The second build file is for mcuboot project build.
    The third build file has both mcuboot+application which can be flashed.

    I just need to know how to flash the second build file, that is at "build/mcuboot/zephyr/zephyr.hex"
    Please suggest..?!

    Thanks

Children
  • So you want to know how to flash a .hex file?

    You can use nRF Command Line Tools directly. You have already installed it, since West (part of nRF Connect SDK) uses it. Use the command:

    nrfjprog --program build\mcuboot\zephyr\zephyr.hex --verify --sectorerase

    Best regards,

    Edvin

  • Thank you ,

    Is it fine if this ticket remains open..?

    I could use your help for my DFU development.

    Thanks,

  • Hello Edvin,

    I have a requirement to map SLOT-1 into external serial flash memory & fetch it through SPI interface, when mcuboot tries to swap SLOT-0 & SLOT-1.

    Under the path "bootloader\mcuboot\boot\zephyr\boards" I could see that for nrf52840, some  dts are provided for QSPI interface with serial flash like:

    /*
     * Copyright (c) 2020 Nordic Semiconductor ASA
     *
     * SPDX-License-Identifier: Apache-2.0
     */
    
    /delete-node/ &boot_partition;
    /delete-node/ &slot0_partition;
    /delete-node/ &slot1_partition;
    /delete-node/ &scratch_partition;
    
    &flash0 {
    	partitions {
    		boot_partition: partition@0 {
    			label = "mcuboot";
    			reg = <0x000000000 0x00010000>;
    		};
    		slot0_partition: partition@10000 {
    			label = "image-0";
    			reg = <0x000010000 0x0000e8000>;
    		};
    	};
    };
    
    &mx25r64 {
    	partitions {
    		compatible = "fixed-partitions";
    		#address-cells = <1>;
    		#size-cells = <1>;
    
    		slot1_partition: partition@0 {
    			label = "image-1";
    			reg = <0x000000000 0x0000e8000>;
    		};
    	};
    };
    

    But I couldn't understand where the APIs are present for swapping..?

    I need to understand where do I make changes in mcuboot source code to make SPI access to SLOT-1 on external flash..?

    Or will this work just with configurations..?

    Kindly suggest or point me to understand with the changes.

    Thanks,

  • Hello,

    We don't have anything like this for SPI, but we do have something like this for QSPI. See these configs:

    # Required by QSPI
    CONFIG_NORDIC_QSPI_NOR=y
    CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
    CONFIG_NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE=16
    
    # Required by QSPI
    CONFIG_MULTITHREADING=y

    I am sorry, I don't know the details on how this works at this point in time, but you can do some research on what these configs do in the mcuboot's source code (particularly the CONFIG_NORDIC_QSPI_NOR), and see if you can exchange the QSPI with SPI. What it does by default is just as you describe, only with SPI.

    BR,

    Edvin

Related