SPRUJ79 November 2024 F29H850TU , F29H859TU-Q1
PIPE allows interrupts to be grouped into "contexts". These contexts can be used by a software task manager system or operating system to switch between multiple execution contexts.
Each interrupt is configured with a CONTEXT_ID (INT_CONFIG.CONTEXT_ID) that determines which context the interrupt is in. By default, all interrupts are assigned the same CONTEXT_ID.
The PIPE can then be configured to only arbitrate interrupts whose context matches the "active context". Active context is selected by setting the TASK_CTRL.ACTIVE_CONTEXT_ID field.
Any updates to INT_CONFIG.CONTEXT_ID and TASK_CTRL.ACTIVE_CONTEXT_ID take place on the next arbitration cycle.
Changing the active context or context ID does not stop accumulation of interrupt events that are out of context. This only disables interrupt participation in arbitration.
GLOBAL_EN.ENABLE must be disabled before changing TASK_CTRL.ACTIVE_CONTEXT_ID. This is done to avoid disrupting the priority arbitration as some interrupts can become disabled and out of arbitration and others can be enabled and join arbitration.
Once TASK_CTRL.ACTIVE_CONTEXT_ID is modified, software must wait at least 6 system clock cycles for arbitration to complete before re-enabling GLOBAL_EN.ENABLE.