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

Application hangs on SVC_HANDLER after ble_stack_init

Hi, I am using nrf51822 pca10004 with SDK110 v8 , I got a problem that the code hangs in sd_softdevice_enable and stuck in SVC_Handler.

Thanks, Nagaraj

  • Hi,

    It could be that you have not set aside enough RAM for the SoftDevice.

    What toolchain/IDE are you using?

    NOTE:

    As seen in this table, the nRF51x22 Evaluation Kit(PCA10004) uses an nRF51 IC revision 1 or 2. This is an outdated chip revision, and is not support in the newer SDK versions. As seen in this compatibility matrix, the newer SDK versions only supports nRF51 IC rev.3

    I would therefore recommend upgrading to a Development Kit. For new products I would recommend a nRF52832-DK, where you have support for the latest SDK versions and Bluetooth 5.

  • We are using IAR, the issue started when we flashed the working code to PCA10004 board. We have the same code working on PCA10004 (With connector for antenna) and without any issue the board is working fine.

    As per “nRF51 Series IC revisions compatibility with SDK and SoftDevices “ S110 SD can be used with nRF51822 IC version 2. We haven’t tested the board with other Softdevices, we will test the same and see the result.

  • What is the value of the RAM start address you are using?

    Do you have external LF crystal on the board? Are you configuring the SoftDevice to use the internal LF oscillator or external LF crystal ?

    What SDK version are you using? SDK 11.0 ?

  • we are using SDK 6.1.0.0 with softdevice v8.0.0 , crystal clock as NRF_CLOCK_LFCLKSRC_RC_250_PPM_4000MS_CALIBRATION and using following .icf file for setting address

    define symbol __ICFEDIT_intvec_start__ = 0x00000000;
    /*-Memory Regions-*/
    define symbol __ICFEDIT_region_ROM_start__   = 0x00018000;
    define symbol __ICFEDIT_region_ROM_end__     = 0x0003FFFF;
    define symbol __ICFEDIT_region_RAM_start__   = 0x20000000;
    define symbol __ICFEDIT_region_RAM_end__     = 0x20003FFF;
    /*-Sizes-*/
    define symbol __ICFEDIT_size_cstack__   = 0x800;
    define symbol __ICFEDIT_size_heap__     = 0x800;
    /**** End of ICF editor section. ###ICF###*/
    

    Thanks, nagaraj

  • Try to increase the RAM start address, e.g. try

    define symbol __ICFEDIT_region_RAM_start__   = 0x20002000;
    
Related