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

SoftDevice s110 and SDK v6.1

Hello, I have device with nrf51822-qfab and I need to run ble_app_template (use softdevice s110). What version of SoftDevice I must to use with SDK v6.1? About problem: It can't complete SOFTDEVICE_HANDLER_INIT; SDK 6.1 and SoftDevice s110 v7.3.0. Newest SDK v12 is not an option, because SD s130 takes 86% of flash.

  • According to the compatibility matrix, you are using the correct SoftDevice version (7.3.0). This SoftDevice version uses 88 kB.

    In SDK v6.1 the example called ble_app_template is setup to be used with the nRFgo Motherboard (nRF6310), is this the board you are using? Is the softdevice_handler_init(..) function returning any error codes?

  • No error returning. It go softdevice_handler_init() -> then calling function sd_softdevice_enable(clock_source, softdevice_assertion_handler); clock_source = 0x00000008; softdevice_assertion_handler = 0x00018c00; and this function didn't return any error code.

  • What board are you using? The board code starts with PCA + number.

    Could you insert a breakpoint in softdevice_handler.c, line 231 and 234, and see what the return code is when debugging?

  • I sayd it. 231: err_code = 0; 234: err_code - don't know because it can't perform sd_softdevice_enable() function and then when I press Stop I see only "main" in call stack. Board is custom, but in SDK I try template from nrf6310. There is disassembly, last command that mcu do - 0x00018CF6 DF10 SVC 0x10 after it - nothing.

      231:     err_code = sd_softdevice_enable(clock_source, softdevice_assertion_handler); 
    0x00018CF2 4937      LDR      r1,[pc,#220]  ; @0x00018DD0
    0x00018CF4 9801      LDR      r0,[sp,#0x04]
    0x00018CF6 DF10      SVC      0x10
    0x00018CF8 4605      MOV      r5,r0
       232:     if (err_code != NRF_SUCCESS)
    
    1. Set optimization level 0 in target options -> C/C++ and define DEBUG in the preprocessor symbols.
    2. Place a break point next to while(loop)(line 59) and line 57, in app_error.h
    3. What for the error to happen, and read the value.
Related