Name
OMAP L1xx Interrupt Controller — Advanced Interrupt Controller Definitions And usage
Interrupt controller definitions
The file <cyg/hal/var_ints.h>
(located
at
hal/arm/arm9/omap/
in the eCos source repository) contains interrupt vector number
definitions for use with the eCos kernel and driver interrupt
APIs.
VERSION
/include/var_ints.h
The list of interrupt vectors may be augmented on a per-platform basis. Consult the platform HAL documentation for your platform for whether this is the case.
Interrupt Controller Functions
The source file src/omap_l1xx_misc.c
within
this package provides most of the support functions to manipulate
the interrupt controller. The
hal_IRQ_handler
queries the IRQ status
register to determine the interrupt cause. Functions
hal_interrupt_mask
and
hal_interrupt_unmask
enable or disable
interrupts within the interrupt controller.
Interrupts are configured in the
hal_interrupt_configure
function. Only GPIO
interrupts are configurable, and at present we do not support full
decoding of these, so this function is empty.
The hal_interrupt_acknowledge
function
acknowledges an interrupt.
The hal_interrupt_set_level
is used to set
the priority level of the supplied interrupt within the Advanced
Interrupt Controller. This is supported by assigning each vector
to one of the 30 channels that map to the IRQ vector. The FIQ
vector channels are currently ignored. The level value may range
from 0 to 29, with 0 being the highest priority. This range is
shifted into the 2..31 range, and any attempt to set a priority
value greater than 29 is clamped to 29.
Note that in all the above, it is not recommended to call the
described functions directly. Instead either the HAL macros
(HAL_INTERRUPT_MASK
et al) or preferably the
kernel or driver APIs should be used to control interrupts.
2024-03-18 | eCosPro Non-Commercial Public License |