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.
Copyright © 1988-2004 OAR Corporation