Unable to perform a BLE DFU when flash is at around 97 % capacity

Hi,

I'm using a nrf52832 and NCS 1.9.0 and I would like to be able to use SMP to make firmware updates using BLE. I'm was able to perform FOTA, but the flash is divided by two because I'm using MCUBoot and my app would require more. My firmware is taking 98.82% of half of the flash capacity. When I try to do a DFU over BLE, it doesn't work and I think it may come from the fact that the image is too big. When I remove some features from my firmware and I reduce the image to 96.5%, I'm able to perform the DFU.

Do you have any idea of how I could reduce my image size? Is it possible to reorganize the partitions to get more space.

I know that I can't use a single application slot. (https://devzone.nordicsemi.com/f/nordic-q-a/86691/single-slot-dfu-using-mcuboot)

I would like to use the swap without scratch partition as mentioned here https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/mcuboot/design.html but the option MCUBOOT_SWAP_USING_MOVE is not a valid option in my project.

Thanks,

Alexandre

Parents Reply
  • Hi,

    Thanks for the answer. I'm not able to set some option inside of my prj.conf such as CONFIG_BOOT_SWAP_USING_MOVE or CONFIG_BOOT_UPGRADE_ONLY. When I'm trying to set these configurations, I'm getting a warning like this:  warning: attempt to assign the value 'y' to the undefined symbol BOOT_UPGRADE_ONLY.

    There's some other symbols starting by CONFIG_BOOT I'm unable to set too.

    Do you have an idea of why I'm not able to set these?

    When I look into the .config file under build/mcuboot/zephyr, I can see both of them: 

    # CONFIG_BOOT_UPGRADE_ONLY is not set
    CONFIG_BOOT_SWAP_USING_MOVE=y

    Thanks,

    Alexandre

Children
Related