CMSIS-Core (Cortex-A): irq_ctrl.h File Reference

| CMSIS-Core (Cortex-A) Version 1.2.0 CMSIS-Core support for Cortex-A processor-based devices

- Main Page
- Usage and Description
- Reference

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Functions
irq_ctrl.h File Reference

Interrupt Controller API header file. More...

## Macros

#define | IRQ_CTRL_H_
#define | IRQHANDLER_T
#define | IRQN_ID_T
#define | IRQ_MODE_TRIG_Pos (0U)
#define | IRQ_MODE_TRIG_Msk (0x07UL /*<< IRQ_MODE_TRIG_Pos*/)
#define | IRQ_MODE_TRIG_LEVEL (0x00UL /*<< IRQ_MODE_TRIG_Pos*/)
| Trigger: level triggered interrupt. More...
#define | IRQ_MODE_TRIG_LEVEL_LOW (0x01UL /*<< IRQ_MODE_TRIG_Pos*/)
| Trigger: low level triggered interrupt. More...
#define | IRQ_MODE_TRIG_LEVEL_HIGH (0x02UL /*<< IRQ_MODE_TRIG_Pos*/)
| Trigger: high level triggered interrupt. More...
#define | IRQ_MODE_TRIG_EDGE (0x04UL /*<< IRQ_MODE_TRIG_Pos*/)
| Trigger: edge triggered interrupt. More...
#define | IRQ_MODE_TRIG_EDGE_RISING (0x05UL /*<< IRQ_MODE_TRIG_Pos*/)
| Trigger: rising edge triggered interrupt. More...
#define | IRQ_MODE_TRIG_EDGE_FALLING (0x06UL /*<< IRQ_MODE_TRIG_Pos*/)
| Trigger: falling edge triggered interrupt. More...
#define | IRQ_MODE_TRIG_EDGE_BOTH (0x07UL /*<< IRQ_MODE_TRIG_Pos*/)
| Trigger: rising and falling edge triggered interrupt. More...
#define | IRQ_MODE_TYPE_Pos (3U)
#define | IRQ_MODE_TYPE_Msk (0x01UL << IRQ_MODE_TYPE_Pos)
#define | IRQ_MODE_TYPE_IRQ (0x00UL << IRQ_MODE_TYPE_Pos)
| Type: interrupt source triggers CPU IRQ line. More...
#define | IRQ_MODE_TYPE_FIQ (0x01UL << IRQ_MODE_TYPE_Pos)
| Type: interrupt source triggers CPU FIQ line. More...
#define | IRQ_MODE_DOMAIN_Pos (4U)
#define | IRQ_MODE_DOMAIN_Msk (0x01UL << IRQ_MODE_DOMAIN_Pos)
#define | IRQ_MODE_DOMAIN_NONSECURE (0x00UL << IRQ_MODE_DOMAIN_Pos)
| Domain: interrupt is targeting non-secure domain. More...
#define | IRQ_MODE_DOMAIN_SECURE (0x01UL << IRQ_MODE_DOMAIN_Pos)
| Domain: interrupt is targeting secure domain. More...
#define | IRQ_MODE_CPU_Pos (5U)
#define | IRQ_MODE_CPU_Msk (0xFFUL << IRQ_MODE_CPU_Pos)
#define | IRQ_MODE_CPU_ALL (0x00UL << IRQ_MODE_CPU_Pos)
| CPU: interrupt targets all CPUs. More...
#define | IRQ_MODE_CPU_0 (0x01UL << IRQ_MODE_CPU_Pos)
| CPU: interrupt targets CPU 0. More...
#define | IRQ_MODE_CPU_1 (0x02UL << IRQ_MODE_CPU_Pos)
| CPU: interrupt targets CPU 1. More...
#define | IRQ_MODE_CPU_2 (0x04UL << IRQ_MODE_CPU_Pos)
| CPU: interrupt targets CPU 2. More...
#define | IRQ_MODE_CPU_3 (0x08UL << IRQ_MODE_CPU_Pos)
| CPU: interrupt targets CPU 3. More...
#define | IRQ_MODE_CPU_4 (0x10UL << IRQ_MODE_CPU_Pos)
| CPU: interrupt targets CPU 4. More...
#define | IRQ_MODE_CPU_5 (0x20UL << IRQ_MODE_CPU_Pos)
| CPU: interrupt targets CPU 5. More...
#define | IRQ_MODE_CPU_6 (0x40UL << IRQ_MODE_CPU_Pos)
| CPU: interrupt targets CPU 6. More...
#define | IRQ_MODE_CPU_7 (0x80UL << IRQ_MODE_CPU_Pos)
| CPU: interrupt targets CPU 7. More...
#define | IRQ_MODE_MODEL_Pos (13U)
#define | IRQ_MODE_MODEL_Msk (0x1UL << IRQ_MODE_MODEL_Pos)
#define | IRQ_MODE_MODEL_NN (0x0UL << IRQ_MODE_MODEL_Pos)
| Corresponding interrupt is handled using the N-N model. More...
#define | IRQ_MODE_MODEL_1N (0x1UL << IRQ_MODE_MODEL_Pos)
| Corresponding interrupt is handled using the 1-N model. More...
#define | IRQ_MODE_ERROR (0x80000000UL)
| Bit indicating mode value error. More...
#define | IRQ_PRIORITY_Msk (0x0000FFFFUL)
| Interrupt priority value bit-mask. More...
#define | IRQ_PRIORITY_ERROR (0x80000000UL)
| Bit indicating priority value error. More...

## Typedefs

typedef void(* | IRQHandler_t )(void)
| Interrupt handler data type. More...
typedef int32_t | IRQn_ID_t
| Interrupt ID number data type. More...

## Functions

int32_t | IRQ_Initialize (void)
| Initialize interrupt controller. More...
int32_t | IRQ_SetHandler (IRQn_ID_t irqn, IRQHandler_t handler)
| Register interrupt handler. More...
IRQHandler_t | IRQ_GetHandler (IRQn_ID_t irqn)
| Get the registered interrupt handler. More...
int32_t | IRQ_Enable (IRQn_ID_t irqn)
| Enable interrupt. More...
int32_t | IRQ_Disable (IRQn_ID_t irqn)
| Disable interrupt. More...
uint32_t | IRQ_GetEnableState (IRQn_ID_t irqn)
| Get interrupt enable state. More...
int32_t | IRQ_SetMode (IRQn_ID_t irqn, uint32_t mode)
| Configure interrupt request mode. More...
uint32_t | IRQ_GetMode (IRQn_ID_t irqn)
| Get interrupt mode configuration. More...
IRQn_ID_t | IRQ_GetActiveIRQ (void)
| Get ID number of current interrupt request (IRQ). More...
IRQn_ID_t | IRQ_GetActiveFIQ (void)
| Get ID number of current fast interrupt request (FIQ). More...
int32_t | IRQ_EndOfInterrupt (IRQn_ID_t irqn)
| Signal end of interrupt processing. More...
int32_t | IRQ_SetPending (IRQn_ID_t irqn)
| Set interrupt pending flag. More...
uint32_t | IRQ_GetPending (IRQn_ID_t irqn)
| Get interrupt pending flag. More...
int32_t | IRQ_ClearPending (IRQn_ID_t irqn)
| Clear interrupt pending flag. More...
int32_t | IRQ_SetPriority (IRQn_ID_t irqn, uint32_t priority)
| Set interrupt priority value. More...
uint32_t | IRQ_GetPriority (IRQn_ID_t irqn)
| Get interrupt priority. More...
int32_t | IRQ_SetPriorityMask (uint32_t priority)
| Set priority masking threshold. More...
uint32_t | IRQ_GetPriorityMask (void)
| Get priority masking threshold. More...
int32_t | IRQ_SetPriorityGroupBits (uint32_t bits)
| Set priority grouping field split point. More...
uint32_t | IRQ_GetPriorityGroupBits (void)
| Get priority grouping field split point. More...

## Description

Version
  V1.1.0

Date
  03. March 2020

## Macro Definition Documentation

#define IRQ_CTRL_H_

#define IRQ_MODE_CPU_Msk (0xFFUL << IRQ_MODE_CPU_Pos)

#define IRQ_MODE_CPU_Pos (5U)

#define IRQ_MODE_DOMAIN_Msk (0x01UL << IRQ_MODE_DOMAIN_Pos)

#define IRQ_MODE_DOMAIN_Pos (4U)

#define IRQ_MODE_MODEL_1N (0x1UL << IRQ_MODE_MODEL_Pos)

#define IRQ_MODE_MODEL_Msk (0x1UL << IRQ_MODE_MODEL_Pos)

#define IRQ_MODE_MODEL_NN (0x0UL << IRQ_MODE_MODEL_Pos)

#define IRQ_MODE_MODEL_Pos (13U)

#define IRQ_MODE_TRIG_Msk (0x07UL /*<< IRQ_MODE_TRIG_Pos*/)

#define IRQ_MODE_TRIG_Pos (0U)

#define IRQ_MODE_TYPE_Msk (0x01UL << IRQ_MODE_TYPE_Pos)

#define IRQ_MODE_TYPE_Pos (3U)

#define IRQHANDLER_T

#define IRQN_ID_T

## Typedef Documentation

typedef void(* IRQHandler_t)(void)

typedef int32_t IRQn_ID_t