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

Softdevice vs non-Softdevice

Hi,

I would like to know which is the difference between using a Softdevice or not.

Looking at the blinky example, the two versions are provided. The "main.c" file is the same for both and the only different files are the Makefile and the blinky_gcc_nrf52.ld.

So, which are the advantages and drawbacks of using the Softdevice? Are there any restrictions when programming?

Thank you!

  • The softdevice is just a communications stack for the nRF chipsets. Often communication stacks have propriety code, may be certfied for compliance or may include code and methods licensed from a third party. For these reasons the actual code won't be revealed to an end developer such as yourself. Instead the code is delivered as pre-compiled binaries called a softdevice.

    Then the end developer writes code for their custom application and converses with the softdevice via API's when the services of the softdevice are required.

    A good example of this is the softdevice S132 which provides bluetooth communications support.

    So, no you do not need to use a softdevice if you do not have specific communications needs. However you may have to change the memory locations in some project settings if you intend to load them without an SD. The SD always occupies flash space starting with 0x0 since it will be the first thing to load. But if you don't use a softdevice you will want your code starting at 0x0 so it loads/runs first. In the keil IDE this is "options for target", IROM1 Start.

Related