BeRTOS
|
System IRQ handler for Atmel AT91 ARM7 processors. More...
#include "sysirq_at91.h"
#include <io/arm.h>
#include <cpu/irq.h>
#include <cpu/types.h>
#include <cfg/module.h>
#include <cfg/macros.h>
Go to the source code of this file.
Defines | |
#define | SYSIRQ_PRIORITY 0 |
default priority for system irqs. | |
Functions | |
void | pit_setEnable (bool enable) |
Enable/disable the Periodic Interrupt Timer interrupt. | |
static | DECLARE_ISR_CONTEXT_SWITCH (sysirq_dispatcher) |
System IRQ dispatcher. | |
void | sysirq_init (void) |
Init system IRQ handling. | |
void | sysirq_setHandler (sysirq_t irq, sysirq_handler_t handler) |
Helper function used to set handler for system IRQ irq. | |
void | sysirq_setEnable (sysirq_t irq, bool enable) |
Helper function used to enable/disable system IRQ irq. | |
bool | sysirq_enabled (sysirq_t irq) |
Helper function used to get system IRQ irq state. | |
Variables | |
static SysIrq | sysirq_tab [] |
Table containing all system irqs. |
System IRQ handler for Atmel AT91 ARM7 processors.
In Atmel AT91 ARM7TDMI processors, there are various peripheral interrupt sources. In general, every source has its own interrupt vector, so it is possible to assign a specific handler for each interrupt independently. However, there are a few sources called "system sources" that share a common IRQ line and vector, called "system IRQ". So a unique system IRQ dispatcher is implemented here. This module also contains an interface to manage every source independently. It is possible to assign to every system IRQ a specific IRQ handler.
Definition in file sysirq_at91.c.
static DECLARE_ISR_CONTEXT_SWITCH | ( | sysirq_dispatcher | ) | [static] |
System IRQ dispatcher.
This is the entry point for all system IRQs in AT91. This function checks for interrupt enable state of various sources (system timer, etc..) and calls the corresponding handler.
Definition at line 101 of file sysirq_at91.c.
void sysirq_init | ( | void | ) |
Init system IRQ handling.
Definition at line 125 of file sysirq_at91.c.