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

Using Segger Embedded Studios -- How to Build Project with SDK v16.0.0 and Soft device S113

Hello,

I am starting a new project and we are using the following:

-NRF52840

-SDK v16.0.0

-pca10056 (NRF52849 DK)

After downloading the SDK, I was able to build the project "ble_app_hrs_freertos" successfully and get it to run with soft device S140. Now, I'd like to use the more memory efficient S113 soft device instead. When I swapped the soft devices (remove S140 and replace with S113), the project will build, but when executing, I get the following:

"Stopped by vector catch"

What are the necessary steps to migrate from S140 to S113 using SES?

Do I need to modify the .emProject file and replace all callouts of S140 to S113?

  • Hello,

    The easiest approach is probably to open the *.emProject file in a text editor, do a "search and replace" for all occurrences of S140 and s140 (case sensitive).  Then in the same file, update the application start address in flash, so it corresponds with the size of the new Softdevice (s113 v7.x is 0x1C000 bytes - Memory resource map and usage). 

     ble_app_hrs_freertos s113 port:

    s113.zip

  • This response was perfect and now my project is running with S113 seamlessly. 

  • Hello, I'm now using S113, but v7.2.0. I modified the .emProject file to replace all S140 and s140 with "S113" and "s113" respectively. I changed the Start Address in Flash to be 0x1C000 bytes as well. I'm getting a vector catch . I'm using SES 4.42a with NRF52840 devKit (PCA10056, 2.0.1, 2020.43, 683307444). I'm using SDK 17.0.2 for the ble_peripheral HRS example project. Anything new that I have to modify in order to migrate from S140 to S113?



    Preparing target for download Executing Reset script TargetInterface.resetAndStop() Reset: Halt core after reset via DEMCR.VC_CORERESET. Reset: Reset device via AIRCR.SYSRESETREQ. Downloading ?s113_nrf52_7.2.0_softdevice.hex? to J-Link Programming 2.7 KB of addresses 00000000 ? 00000aff Programming 105.1 KB of addresses 00001000 ? 0001b4ab J-Link: Flash download: Bank 0 @ 0x00000000: Skipped. Contents already match Download successful Downloading ?ble_app_hrs_pca10056_s113.elf? to J-Link Programming 73.4 KB of addresses 0001c000 ? 0002e5fb Programming 0.0 KB of addresses 0002e5fc ? 0002e60f Programming 21.0 KB of .rodata addresses 0002e610 ? 00033a6b Programming 0.1 KB of addresses 00033a6c ? 00033ad3 J-Link: Flash download: Bank 0 @ 0x00000000: Skipped. Contents already match Download successful Stopped by vector catch
  • Hello,

    The same approach should work with SDK 17, so not sure what is triggering the vector catch (fault exception). Could it be the RAM configuration maybe? I would suggest that you try to compare your linker settings with those that are used for the ble_app_uart s113 project here nRF5_SDK_17.0.2_d674dde\examples\ble_peripheral\ble_app_uart\pca10056\s113\

  • Actually, the same approach works. I had a case of mixed of J-link connection downloading to the incorrect target. 

Related