Individual DPPI channels and channel groups can have independent security attributes that are defined as either secure or non-secure. DPPI supports split security, handling both secure and non-secure access.
DPPI channels
A peripheral configured as non-secure can only subscribe to or publish on non-secure DPPI channels. A peripheral configured as secure can access all DPPI channels. An attempt by a non-secure peripheral to subscribe to or publish on a DPPI channel configured as secure is ignored, and a PPI event is not issued.
DPPI channels are enabled or disabled through individual bits in registers CHEN, CHENSET, and CHENCLR.
The security of a DPPI channel is configured using FEATURE.DPPIC.CH[n] (n=0..23).
DPPI channel groups
Channels can be grouped, which allows them to be enabled or disabled collectively.
- Secure channel group – includes both secure and non-secure DPPI channels
- Non-secure channel group – only includes non-secure DPPI channels
An attempt to include a secure DPPI channel in a non-secure DPPI channel group is ignored.
Registers CHG[n], TASKS_CHG[n].EN, TASKS_CHG[n].DIS, SUBSCRIBE_CHG[n].EN, and SUBSCRIBE_CHG[n].DIS configure the DPPI channel groups. A security fault is triggered when an illegal access is made to these registers.
DPPIC subscribe to DPPIC channels through the SUBSCRIBE_CHG[] registers to trigger the task for enabling or disabling channel groups. An event from a secure channel is ignored if the group subscribing to that channel is non-secure. A secure group can subscribe to a non-secure channel or a secure channel.
The security of a DPPIC channel group is configured using FEATURE.DPPIC.CHG[n] (n=0..7).