nrfxlib API 3.4.99
Loading...
Searching...
No Matches

◆ nrf_semmc_dppi_subscribe_enable()

nrf_semmc_error_t nrf_semmc_dppi_subscribe_enable ( nrf_semmc_t const * p_semmc,
uint8_t slot,
bool enable )

#include <nrf_semmc.h>

Permit or forbid the soft peripheral to subscribe a DPPI slot.

Nothing is permitted by default, so an unmodified application is never driven from the DPPI fabric and is unaffected by traffic other subsystems (for example MPSL/SDC) generate on the same DPPI instance. Permission is per slot and independent of the role binding.

Permission is necessary but not sufficient: the soft peripheral connects a permitted slot only in the states where that subscription is meaningful, and disconnects it again afterwards. The task itself stays triggerable through its task register regardless of this setting.

Like nrf_semmc_dppi_role_map_set, this publishes over a configuration barrier and is rejected while a transfer is in flight. Note also that permitting the slot carrying the start role does not connect it immediately: the soft peripheral arms that channel when it next reaches the state where the subscription is meaningful.

Parameters
[in]p_semmcDriver instance.
[in]slotSlot index, less than SP_DPPI_SLOT_COUNT.
[in]enableTrue to permit the subscription, false to revoke it.
Return values
NRF_SEMMC_SUCCESSPermission published to the soft peripheral.
NRF_SEMMC_ERROR_INVALID_PARAMSlot out of range.
NRF_SEMMC_ERROR_INVALID_STATEDriver not initialized.
NRF_SEMMC_ERROR_BUSYA transfer is in progress or prepared; nothing was published.