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

Dual Application Code in Memory for NRF51822, 256kB flash & 32kB RAM

Hello All Supporters,

I'm developing one NRF51822 based product.so sometimes will need to update application codes as new features arrives.so if my user update(replace)application by OTA successfully and if that application code has bug or some other reason he want load older one application code .than user should able to install old application program by pressing one dedicated button.

so for that i have to store copy of one main application code permanently at somewhere in memory and when assigned button is pressed then it get copied to main application area.

so is it possible to store 2 application code? and how to restore permanent stored code by button whenever we need it.

Application code is approx. 80kb in size

Thanks.

Parents
  • Hi,

     

    Our DFU does not provide this functionality.

    You cannot execute from a "golden firmware" version, as the DFU will invalidate this space upon upgrade. If you have a critical bug, you will need to patch this by releasing a new OTA.

    Even if this was possible, you're out of space:

    Total flash size of the nRF51x22_xxAA/AC : 256 kB

    S130 is 0x1b000 (108kB) long

    Your application is 80 kB

    The DFU is 21 kB

    SWAP_SPACE needs to be >= application_size (80 kB in your case)

    108 + 21 + 80*2 = 289 kByte, which is greater than 256 kB.

     

    Best regards,

    Håkon

Reply
  • Hi,

     

    Our DFU does not provide this functionality.

    You cannot execute from a "golden firmware" version, as the DFU will invalidate this space upon upgrade. If you have a critical bug, you will need to patch this by releasing a new OTA.

    Even if this was possible, you're out of space:

    Total flash size of the nRF51x22_xxAA/AC : 256 kB

    S130 is 0x1b000 (108kB) long

    Your application is 80 kB

    The DFU is 21 kB

    SWAP_SPACE needs to be >= application_size (80 kB in your case)

    108 + 21 + 80*2 = 289 kByte, which is greater than 256 kB.

     

    Best regards,

    Håkon

Children
No Data
Related