This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

app without softdevice

Hi, Nordic

I know when I program one BLE app, softdevice should be needed.

If I program esb/gazell app, softdevice is not needed.

I want to know, when I program one app (use esb/gazell), can softdevice be writting flash?

If this, if I can put device into bootloader mode, I think BLE DFU bootloader can work, right?

If yes, plz tell me how to add softdevice and how to put device into bootloader mode?

Thanks.

Parents
  • Hi,

    You can write the SoftDevice to flash and then have an application that don't use the SoftDevice. You only need to change the FLASH and RAM start address and size. See for example the blinky_pca10040_s132 example (vs the blinky_pca10040 example).

    BLE DFU bootloader will work if the correct SoftDevice is written to flash.

    The device will always start in the bootloader. In the bootloader there is a check if the device should go into bootloader mode or jump to the application. In the earlier SDKs (11 and prior) this check was done using the NRF_POWER->GPREGRET register which is retained after resetting the device. On the newer SDKs (12 and later) it is done using flash write and read operations, and at the moment the library used (Flash Storage) only works with the SD. I therefore recommend you to use the GPREGRET register instead. When you want to go into bootloader mode (from the application) write a value to the GPREGRET register and then do a system reset, in the bootloader check the GPREGRET register for this value.

    I saw you had a similar question here. More details about how to enter bootloader mode you can ask in that thread.

    Ole

Reply
  • Hi,

    You can write the SoftDevice to flash and then have an application that don't use the SoftDevice. You only need to change the FLASH and RAM start address and size. See for example the blinky_pca10040_s132 example (vs the blinky_pca10040 example).

    BLE DFU bootloader will work if the correct SoftDevice is written to flash.

    The device will always start in the bootloader. In the bootloader there is a check if the device should go into bootloader mode or jump to the application. In the earlier SDKs (11 and prior) this check was done using the NRF_POWER->GPREGRET register which is retained after resetting the device. On the newer SDKs (12 and later) it is done using flash write and read operations, and at the moment the library used (Flash Storage) only works with the SD. I therefore recommend you to use the GPREGRET register instead. When you want to go into bootloader mode (from the application) write a value to the GPREGRET register and then do a system reset, in the bootloader check the GPREGRET register for this value.

    I saw you had a similar question here. More details about how to enter bootloader mode you can ask in that thread.

    Ole

Children
Related