Jump to main content

##

# 2.39 EC Interrupt Aggregator

The EC Interrupt Aggregator works in conjunction with the processor’s interrupt interface to handle hardware interrupts and exceptions.

All interrupts are routed to the ARM processor through the ARM Nested Vectored Interrupt Controller (NVIC). All interrupt sources are aggregated into the GIRQx Source registers. If the interrupt source is active and the interrupt is enabled, the corresponding Result bit is set. In many cases, the Result bit for an individual interrupt source is tied directly to the NVIC. These interrupts are knows as Direct Interrupts. In addition, all GIRQx can also generate an interrupt to the NVIC when any of the enabled interrupts in its group is asserted. The NVIC vectors for the aggregated GIRQ interrupts are known as Aggregate Interrupts. Firmware should not enable the group GIRQ NVIC interrupt at the same time individual direct interrupts for members of the group are enabled. If both are enabled, the processor will receive two interrupts for an event, one from the GIRQ and one from the direct interrupt.

## Library Interface

ECIA peripheral library provides the following interfaces:

Functions

Name | Description
--- | ---
ECIA_Initialize | Initializes the ECIA module based on the MCC configuration
ECIA_GIRQBlockDisable | Disables the given GIRQ block
ECIA_GIRQBlockDisableAll | Disables the interrupt generation from all the GIRQ blocks
ECIA_GIRQBlockEnable | Enables the given GIRQ block
ECIA_GIRQBlockStatusGet | Reports the status of the group GIRQ interrupt assertion to the NVIC
ECIA_GIRQIsInterruptEnabled | Returns the status of the given interrupt source
ECIA_GIRQResultGet | Returns the status of the given interrupt source
ECIA_GIRQSourceClear | Clears the given interrupt source
ECIA_GIRQSourceClearAll | Clears all interrupt sources in all the ECIA blocks
ECIA_GIRQSourceDisable | Disables the given interrupt source
ECIA_GIRQSourceDisableAll) | Disables all interrupt sources in all the ECIA blocks
ECIA_GIRQSourceEnable | Enables the given interrupt source
ECIA_InterruptDisable | Disables the given interrupt source
ECIA_InterruptEnable | Enables interrupt at both ECIA and NVIC level for the given interrupt source

Data types and constants

Name | Type | Description
--- | --- | ---
ECIA_GIRQ_BLOCK_NUM | Enum | This enum is used to specify the GIRQ block number in various ECIA block control APIs
ECIA_INT_SOURCE | Enum | This enum is used to specify the interrupt source in various ECIA APIs
GIRQ_AGG_INT_NUM_GET | Macro | This macro returns the aggregate NVIC interrupt number from the given interrupt source
GIRQ_DIR_INT_NUM_GET | Macro | This macro returns the direct NVIC interrupt number from the given interrupt source
IS_INT_SRC_AGG_OR_DIR | Macro | This macro returns the 0 if the given interrupt source is of aggregate type and returns 1 if the interrupt source is of direct type

Note: Not all APIs maybe implemented. See the specific device family section for available APIs.