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

DFU on S130

I'm developing application using your devices (PCA10001/PCA10000) and S130 SoftDevice. I tried to implement DFU/OTA feature in my app. For this purpose I used DFU sources distributed for Beacon "nRF51822 Beacon v1.1.0.zip" that based on S110. But I see that DFU takes a lot of RAM - about 5.5k that is acceptable for S110. As I use S130 that takes 10k RAM itself, leaving for application about 6k. So, I can't use DFU with S130 as it takes almost all available RAM.

Please correct me if I'm not right. Otherwise, please, suggest a way to use DFU on S130. Thanks.

Memory map capture memmap.png

  • Maybe you want to checkout the gcc_nrf51_s110_xxaa_bootloader.ld in \Board\nrf6310\bootloader-master\gcc folder, and on the modification of PSTORAGE_MIN_BLOCK_SIZE

  • Ah, I see additional field "SECTIONS {}" in your LD-file with specified ".bootloaderSettings 0x0003FC00" value. My verison of LD doesn't have it. i should try it

  • I tried to use your ld file with additional sections but result is the same - bootloaders doesn't set UICR.BOOTLOADERADDR. Then I tried to build your whole GCC project by Eclipse and here I got make error: make: *** No rule to make target `all'. Stop. I also tried with project for Keil - I can build it and bootloader properly sets UICR.BOOTLOADERADDR. But when I tried to upload application using OTA downloader hangs at 1% of uploading.

  • Hi Yaro, The target "all" is defined in \Source\templates\gcc\Makefile.common. I would suggest you to try the example on github for S110 with gcc without any modification and make sure it worked properly first. After that you can try to port it for S130.

    Which central device you used to update the firmware (and got stuck at 1%) ? If you use the MCP on PC, version 3.7 and above is not compatible with bootloader from SDK v6.0 Please have a look here.

  • I'm using MCP on PC, Version 3.7.1.8567

    You: "I would suggest you to try the example on github for S110 with gcc.."

    • which one do you mean?
1 2 3 4 5