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

Can application codes located in the unsed part of the flash area of the softdeivce

The size of flash of softdevice in the "s132_nrf51822_5.0.0_release-notes" is 0x23000 but atrually the size of the flash used by softdevice is 0x224A7, which I found when I open softdevice hex file . 

Can I locate a little part of the application codes between address 0x22500 and  0x23000 becuase my application is too large to be located all in Application Flash Region(between 0x23000 and  last valid address in the flash memory), if I need to enable the softdeive and make a ble application?Does it cause some problems?

Platform I used: nRF52810

SDK I used: SDK V14.1.0

softdevice version: S132

Parents
  • Hello,

    Unfortunately, you can not. The softdevice will always start the application running at 0x23000, and it is not possible to change this from the softdevice. 

    The reason it is done this way is that if you want to support DFU, it must be possible to update the application without removing the softdevice. This means that the application can't be using any of the same flash pages as the softdevice, which is why the area between 0x224A7 and 0x23000 is not used. If your application is too large, you can check that you have enabled optimization (for size). If that is not enough, I am afraid you must either use a different (smaller) softdevice, or a chip with a larger flash, such as the nRF52832 or nRF52833. 

    Best regards,

    Edvin

Reply
  • Hello,

    Unfortunately, you can not. The softdevice will always start the application running at 0x23000, and it is not possible to change this from the softdevice. 

    The reason it is done this way is that if you want to support DFU, it must be possible to update the application without removing the softdevice. This means that the application can't be using any of the same flash pages as the softdevice, which is why the area between 0x224A7 and 0x23000 is not used. If your application is too large, you can check that you have enabled optimization (for size). If that is not enough, I am afraid you must either use a different (smaller) softdevice, or a chip with a larger flash, such as the nRF52832 or nRF52833. 

    Best regards,

    Edvin

Children
No Data
Related