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

hang in sd_softdevice_enable() after upgrade from SDK 14.2.0/S132 5.1.0 to SDK 15.0.0/S132 6.0.0

I am upgrading an existing project that was working on SDK 14.2.0 with S132 5.1.0 to SDK 15.0.0 with S132 6.0.0.  I'm using IAR 8.20.1, and have made the changes suggested in the migration document. I was not able to get the DFU support code to compile successfully, so I have removed it from the project and set BLE_DFU_ENABLED to 0. I have changed the linker script to put the intvec_start and ROM_start at 0x26000 due to the increased size of S132 6.0.0. However, the code hangs as soon as sd_softdevice_enable() is executed. If I tell the IAR debugger to stop, it shows that it's in the hardfault handler. IAR says "Exception occured at: 0x23810". The call stack info from the IAR debugger looks useless to me: "[__aeabi_i2d + 0x21]". nRFgo Studio didn't indicate that there were any problems with programming the softdevice, which it shows with an ID of 0xa8 and size of 152 kB.

I've seen mention in other support cases of needing a C preprocessor define of NO_VTOR_CONFIG, but it doesn't look like this is applicable to IAR, and I don't see it in the SDK 15 IAR examples.

I've also seen mention in other support cases of 32 kHz crystal configuration problems, but my client's hardware does have the 32 kHz crystal, and in sdk_config.h, NRF_SDH_CLOCK_LF_SRC is 1 and CLOCK_CONFIG_LF_SRC is 1.

Any debugging suggestions will be greatly appreciated!

Related