RTEMS: Interrupt Support

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Modules
Interrupt Support
Board Support Packages » ARM » Atmel/Microchip SAM E70, S70, V70 and V71 » Contributed Code

## Modules
| Interrupt_deprecated_group

## Interrupt Service Routine definition
typedef uint32_t | irqflags_t
volatile bool | g_interrupt_enabled
#define | irq_initialize_vectors()
| Initialize interrupt vectors.
#define | irq_register_handler(int_num, int_prio)
| Register handler for interrupt.
#define | cpu_irq_enable()
#define | cpu_irq_disable()
#define | cpu_irq_is_enabled() (__get_PRIMASK() == 0)
#define | Enable_global_interrupt() cpu_irq_enable()
#define | Disable_global_interrupt() cpu_irq_disable()
#define | Is_global_interrupt_enabled() cpu_irq_is_enabled()

## Detailed Description

## Macro Definition Documentation

## ◆ cpu_irq_disable

#define cpu_irq_disable | ( |  | ) |

Value:
do { \
__disable_irq(); \
__DMB(); \
/*g_interrupt_enabled = false; */ \
} while (0)

## ◆ cpu_irq_enable

#define cpu_irq_enable | ( |  | ) |

Value:
do { \
/*g_interrupt_enabled = true; */ \
__DMB(); \
__enable_irq(); \
} while (0)

## ◆ irq_initialize_vectors

#define irq_initialize_vectors | ( |  | ) |

Value:
do { \
} while (0)

Initialize interrupt vectors.

For NVIC the interrupt vectors are put in vector table. So nothing to do to initialize them, except defined the vector function with right name.

This must be called prior to irq_register_handler.

## ◆ irq_register_handler

#define irq_register_handler | ( |  | int_num,
|  |  | int_prio
| ) |  |

Value:
NVIC_ClearPendingIRQ((IRQn_Type)int_num); \
NVIC_SetPriority((IRQn_Type)int_num, int_prio); \
NVIC_EnableIRQ((IRQn_Type)int_num); \
NVIC_ClearPendingIRQ
__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
Clear Pending Interrupt.
Definition: core_cm7.h:1883

Register handler for interrupt.

For NVIC the interrupt vectors are put in vector table. So nothing to do to register them, except defined the vector function with right name.

Usage:

irq_initialize_vectors();
irq_register_handler(foo_irq_handler);
irq_initialize_vectors
#define irq_initialize_vectors()
Initialize interrupt vectors.
Definition: compiler.h:321
irq_register_handler
#define irq_register_handler(int_num, int_prio)
Register handler for interrupt.
Definition: compiler.h:342

Note
  The function func must be defined with the ISR macro.
  The functions prototypes can be found in the device exception header files (exceptions.h).