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

consistent support in sd_* wrapper functions

The documentation for S110 v7.1.0 sd_nvic_ClearPendingIRQ implies that it works with any valid IRQ.

I find that (using S110 v7.1.0 with SDK 7.1.0):

  sd_nvic_ClearPendingIRQ(UART0_IRQn);

generates a hard fault while

  NVIC_ClearPendingIRQ(UART0_IRQn);

works fine, in an application which has already started the soft device.

Am I doing something wrong, or is it not only unnecessary but actively wrong to invoke the wrapper functions with peripherals that are not restricted by the soft device? This comment suggests it's supposed to be OK.

(I'm writing code that is supposed to be independent of what soft-device it's running with, so am not trying to guess whether a particular peripheral is restricted or not.)

Parents
  • I've updated to clarify that I'm using the version corresponding to the documentation I cited. I'm not sure how I'm supposed to get an error code out of the fact the PC is left in HardFault_Handler.

    Just confirmation that we should not expect to use the sd wrappers on peripherals that the soft device doesn't manage would be enough to answer the question. If we are supposed to be able to do that, perhaps you could verify that it works for you.

Reply
  • I've updated to clarify that I'm using the version corresponding to the documentation I cited. I'm not sure how I'm supposed to get an error code out of the fact the PC is left in HardFault_Handler.

    Just confirmation that we should not expect to use the sd wrappers on peripherals that the soft device doesn't manage would be enough to answer the question. If we are supposed to be able to do that, perhaps you could verify that it works for you.

Children
No Data
Related