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

S110 v8.0.0 softdevice size and DFU update

With S110 v8.0.0's size increased to 96K, I'm concerned that my current memory layout is going to prevent me from upgrading to a future softdevice.

It seems that the only safe way to do a major softdevice version update is to upgrade both the softdevice and the bootloader at the same time. That seems to be the case for a 7.1.0 -> 8.0.0 and I'd assume it would be the case with future major versions.

I'm currently using 32K for the bootloader and 2K for the pstorage parameters, so with 8.0.0 as a starting point the largest softdevice I can upgrade is 98K (4K MBR + 94K SD) in SD+BL mode.

How much can I expect S110 to grow in the next few major versions?

Does nordic have a roadmap for the next few major versions of S110. The one feature I'm really waiting for is support for larger MTU sizes via fragmentation and reassembly.

I'm getting fairly close to needing to lock down the value of NRF_UICR->BOOTLOADERADDR. I don't want to make a decision now that will prevent me from using the next few major softdevice versions in the future.

Parents
  • @Clem: It's hard to tell about the future product. You can contact our sale staff in your area for more information. Please pm me your location I can send you the contact.

    But what you can do for now is to reduce the size of the bootloader. Have you used any optimization when compiling the code ? Our bootloader only takes about 14KB of code.

  • My reason for asking this question was to find out how much of a diet I need to give my bootloader if I want to be able to support the next few major releases. I sent an email off to my sales rep.

    Part of the reason my bootloader is larger is because it has quite a bit of additional functionality (RSA/SHA1 signed and AES encrypted firmware, OLED display support for user feedback, upgrade of an external SPI flash, no performance problems with 7.5ms connection interval, etc.)

    I know need to put my bootloader on a diet, but many of the big size offenders are the SDK code. For example SWI0_IRQHandler() from app_timer is 1000 bytes. For comparison this is larger then the libc printf() I'm using. It is also larger then my rsa_decrypt+sha1+crc-32 code combined,

Reply
  • My reason for asking this question was to find out how much of a diet I need to give my bootloader if I want to be able to support the next few major releases. I sent an email off to my sales rep.

    Part of the reason my bootloader is larger is because it has quite a bit of additional functionality (RSA/SHA1 signed and AES encrypted firmware, OLED display support for user feedback, upgrade of an external SPI flash, no performance problems with 7.5ms connection interval, etc.)

    I know need to put my bootloader on a diet, but many of the big size offenders are the SDK code. For example SWI0_IRQHandler() from app_timer is 1000 bytes. For comparison this is larger then the libc printf() I'm using. It is also larger then my rsa_decrypt+sha1+crc-32 code combined,

Children
No Data
Related