2.37 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

NameDescription
ECIA_InitializeInitializes the ECIA module based on the MCC configuration
ECIA_GIRQBlockDisableDisables the given GIRQ block
ECIA_GIRQBlockDisableAllDisables the interrupt generation from all the GIRQ blocks
ECIA_GIRQBlockEnableEnables the given GIRQ block
ECIA_GIRQBlockStatusGetReports the status of the group GIRQ interrupt assertion to the NVIC
ECIA_GIRQIsInterruptEnabledReturns the status of the given interrupt source
ECIA_GIRQResultGetReturns the status of the given interrupt source
ECIA_GIRQSourceClearClears the given interrupt source
ECIA_GIRQSourceClearAllClears all interrupt sources in all the ECIA blocks
ECIA_GIRQSourceDisableDisables the given interrupt source
ECIA_GIRQSourceDisableAll)Disables all interrupt sources in all the ECIA blocks
ECIA_GIRQSourceEnableEnables the given interrupt source
ECIA_InterruptDisableDisables the given interrupt source
ECIA_InterruptEnableEnables interrupt at both ECIA and NVIC level for the given interrupt source

Data types and constants

NameTypeDescription
ECIA_GIRQ_BLOCK_NUMEnumThis enum is used to specify the GIRQ block number in various ECIA block control APIs
ECIA_INT_SOURCEEnumThis enum is used to specify the interrupt source in various ECIA APIs
GIRQ_AGG_INT_NUM_GETMacroThis macro returns the aggregate NVIC interrupt number from the given interrupt source
GIRQ_DIR_INT_NUM_GETMacroThis macro returns the direct NVIC interrupt number from the given interrupt source
IS_INT_SRC_AGG_OR_DIRMacroThis 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.