Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

softdevice fault handler gets called with 0x1001 (NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION) after upgrading to nRF5 SDK 17.0.2

I upgraded the nRF5 SDK from 15.2 to 17.0.2 and also the SoftDevice S132 from 6.1.1 to 7.2.0. I then tested my application on a nRF52832-DK board. sd_softdevice_enable returns 0, then a short time later my fault handler gets called with fault = 0x1001 and a PC value in the middle of a function that doesn't do anything with the NVIC or interrupts.

In the fault handler I check what IRQs are enabled and what their priorities are. Only IRQ 0, 11, 13, 25 & 32 (POWER_CLOCK, RTC0, RNG, SWI5 and MWU) have a 0, 1 or 4 prio.

What else could be wrong? What more checks have been added from version 6.1.1 of S132?

Anything else I should check?

  • Hi,

    PC value in the middle of a function

    What are you doing in this function?

    If app_error_fault_handler() triggers with fault id 0x1001, then this is a NRF_FAULT_ID_APP_MEMACC.

    From the documentation here, this fault is described as,

    Application invalid memory access. The info parameter will contain 0x00000000, in case of SoftDevice RAM access violation. In case of SoftDevice peripheral register violation the info parameter will contain the sub-region number of PREGION[0], on whose address range the disallowed write access caused the memory access fault.

  • Ah, I looked at the wrong error codes.

    info is 0, so it is a case of SoftDevice RAM access violation. I'd forgotten to update the amount of RAM reserved for the SoftDevice, increasing it made it all work again.

    Thanks you!

Related