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

Is it possible to have my own firmware update but not run DFU?

Dear Sirs:

I use 52832, and there is 512KB internal flash.

So, I am wondering if I could have my own flash partition as below.

- Bootloader (w/ capability of firmware update)

- APP1

- APP2

In bootloader, I would like to know if I can implement firmware update capability through SPI or I2C connected to another MCU.

Thanks.

-Pico

Parents Reply
  • Hi, Amanda:

    For these example, they all need softdevice. But, what if we don't want to have that?

    Our hardware would be something below.

    nRF52832  <----SPI--->  MCU

    And, in nRF52832 flash, we want to have only

    - Bootloader

    - APP1

    - APP2

    For this architecture, is it possible to do? In addition, in the bootloader, do we really need DFU? Could we just get new firmware from MCU through SPI then writing it to APP1 or APP2's flash zone?

    Thanks.

    -Pico

Children
  • Hi Wei-Chih, 

    Only the BLE DFU needs the softdevice. 

    First, in our implementation there (Secure DFU Bootloader over Serial Link (UART/USB) and the SPI DFU bootloader code) is always an MBR needed. It's used to jump to bootloader. APP1 and APP2 I think you want to have an option to change the current application, right? If so, the way our bootloader implemented now is that there is only one valid app at a time, not for two applications. You would need to modify the code to allow that. We do have an option for DFU external app so that the bootloader will only receive the APP and will not do the swapping. NRF_DFU_SUPPORTS_EXTERNAL_APP is the configuration in the bootloader to support non-swapping DFU. That's where you can modify the app to Jump to either app1 or app2. But you need to study the bootloader a little bit before doing that, it also related to how you will update APP3 later on, should APP3 replace the slot for APP1 or it should replace APP2. 

    -Amanda H.

Related