RTEMS Interrupt Handling on ARM
Sebastian Huber
sebastian.huber at embedded-brains.de
Wed Nov 28 18:06:10 UTC 2012
On 28/11/12 15:34, Claas Ziemke wrote:
> hi all,
>
> sorry for me vanishing from the surface for so long. I just started to take up the work on the BeagleBoard BSP again.
>
> I have 3 questions concerning the Interrupt handling. Since the BSP is based on lpc32xx my question are centred on the
> implementation of that BSP.
>
> 1. Which is the entrypoint of the RTEMS IRQ handling? I mean the function that is called from the exception vector.
> I know there is a "bsp_interrupt_dispatch" function, is that the entrypoint, or is that function called from somewhere else?
Yes, this is the entry point, see
http://git.rtems.org/rtems/tree/cpukit/score/cpu/arm/arm_exc_interrupt.S
>
> 2. If so, what is the purpose of the "arm_status_irq_enable" and "arm_status_restore" functions?
This allows nested interrupts if your interrupt controller supports this.
>
> 3: My BSP till now uses the /libbsp/arm/share/start/start.S boot and system startup code. As i understand the exception
> vector is installed right before the _start symbol. But i only see that all are pointing either to "_start" and "reset". So
> where are the actual interrupt handlers are called?
The exception handler table is relocated later in a board specific way
(see "_CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt,
NULL);"). If you want to use the table in start.S you have to use
arm_exc_interrupt as the entry point for IRQ.
--
Sebastian Huber, embedded brains GmbH
Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
Phone : +49 89 18 90 80 79-6
Fax : +49 89 18 90 80 79-9
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list