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

S332 V2.0.0 with SDK 12.2.0 - Hangs at 0x000025c0

I have a simple application which pretty much consists of the following main function:

int main(void)
{
    SOFTDEVICE_HANDLER_INIT(&clock_lf_cfg, NULL);

    ble_enable_params_t ble_enable_params;
    err_code = softdevice_enable_get_default_config(1, 1, &ble_enable_params);
    APP_ERROR_CHECK(err_code);
}

I am using the SDK provided linker script armgcc_s332_nrf52832_xxaa.ld

When I execute this application, the processor seems to hang. If I attached the debugger, I see that the processor is hung at 0x000025C0 - strange thing is if I single step via si in the debugger and then continue execution via c - the program continues as normal.

I believe 0x000025C0 is in the softdevice execution range. Can you provide any hints as to what might be happening?

sdk_config.h attached. sdk_config.h

Note that the same source (built and linked against the s132v3 softdevice works as expected)

Parents
  • After a bit more experimentation I was able to determine that the cause of the hang is due to not having the RTC initialized before calling SOFTDEVICE_HANDLER_INIT() - I'm not exactly sure why this wasn't an issue with previous SDK or SD versions or why the S132 was not affected in the same way.

    I had thought that the Soft Device performs initialization of the required RTC (RTC0) by itself.

    In my 'fix', I simply have initialized RTC2 before calling SOFTDEVICE_HANDLER_INIT() which seemed to solve the issue.

    I do not fully understand the interdependencies here.

Reply
  • After a bit more experimentation I was able to determine that the cause of the hang is due to not having the RTC initialized before calling SOFTDEVICE_HANDLER_INIT() - I'm not exactly sure why this wasn't an issue with previous SDK or SD versions or why the S132 was not affected in the same way.

    I had thought that the Soft Device performs initialization of the required RTC (RTC0) by itself.

    In my 'fix', I simply have initialized RTC2 before calling SOFTDEVICE_HANDLER_INIT() which seemed to solve the issue.

    I do not fully understand the interdependencies here.

Children
Related