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

Disable soft-device shuts down all interrupts?

SDK: 15.3, Device: nRF52840, IDE: SES v4.16

I am writing a radio test application that uses a service / characteristics to determine radio channel, power, etc. The idea was that the application would shut-down the soft-device once test execution had been engaged. Then, run the radio test.  What I've discovered is that once nrf_sdh_disable_request() has been called, ALL interrupts seem to be disabled. This makes sense in a way: the soft-device is handling interrupts to that point, so once it's disabled, the safest thing is to disable all the interrupts.

My question is this: how do I re-enable interrupts after a call to nrf_sdh_disable_request()?

Thanks,

-J

  • As somebody who has used the S140 SoftDevice and nRF52840 in a project without using the rest of the Nordic SDK, I can tell you for a fact that calling sd_softdevice_disable() does _not_ disable all interrupts. It would help if you explained how exactly you arrived at the conclusion that it does.

    the soft-device is handling interrupts to that point

    When you enable the SoftDevice, it takes over handling of _certain_ interrupts, i.e. for the radio, a timer, the random number generator and some other things, but it does not "handle" all of them. For all other devices, all interrupt handling is passed through to the application code.

    When the SoftDevice is disabled, all interrupts are passed through to the application. (Customer code has full control over everything.)

    You do stop getting SoftDevice event interrupts, but that's not the same thing. (Those events are generated via the software-generated interrupt block.)

    -Bill

Related