RTEMS Logo

RTEMS 4.9.1 On-Line Library


Interrupts Hardware or Software Managed Interrupt Stack

PREV UP NEXT Bookshelf RTEMS Porting Guide

5.3.1: Hardware or Software Managed Interrupt Stack

The setting of the CPU_HAS_SOFTWARE_INTERRUPT_STACK indicates whether the interrupt stack is managed by RTEMS in software or the CPU has direct support for an interrupt stack. If RTEMS is to manage a dedicated interrupt stack in software, then this macro should be set to TRUE and the memory for the software managed interrupt stack is allocated in _ISR_Handler_initialization. If this macro is set to FALSE, then RTEMS assumes that the hardware managed interrupt stack is supported by this CPU. If the CPU has a hardware managed interrupt stack, then the porter has the option of letting the BSP allcoate and initialize the interrupt stack or letting RTEMS do this. If RTEMS is to allocate the memory for the interrupt stack, then the macro CPU_ALLOCATE_INTERRUPT_STACK should be set to TRUE. If this macro is set to FALSE, then it is the responsibility of the BSP to allocate the memory for this stack and initialize it.

If the CPU does not support a dedicated interrupt stack, then the porter has two options: (1) execute interrupts on the stack of the interrupted task, and (2) have RTEMS manage a dedicated interrupt stack.

NOTE: If CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE, then the macro CPU_ALLOCATE_INTERRUPT_STACK should also be set to TRUE.

Only one of CPU_HAS_SOFTWARE_INTERRUPT_STACK and CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is possible that both are FALSE for a particular CPU. Although it is unclear what that would imply about the interrupt processing procedure on that CPU.


PREV UP NEXT Bookshelf RTEMS Porting Guide

Copyright © 1988-2008 OAR Corporation