score: Add CPU_Exception_frame

Add CPU port type CPU_Exception_frame and function
_CPU_Exception_frame_print().

The CPU ports of avr, bfin, h8300, lm32, m32c, m32r, m68k, nios2, sh,
sparc64, and v850 use an empty default implementation of
_CPU_Exception_frame_print().

Add rtems_exception_frame and rtems_exception_frame_print().

Add RTEMS_FATAL_SOURCE_EXCEPTION for CPU exceptions.  Use rtems_fatal()
with source RTEMS_FATAL_SOURCE_EXCEPTION in CPU ports of i386, powerpc,
and sparc for unexpected exceptions.

Add third parameter to RTEMS_BSP_CLEANUP_OPTIONS() which controls the
BSP_PRINT_EXCEPTION_CONTEXT define used in the default
bsp_fatal_extension().

Add test sptests/spfatal26.
This commit is contained in:
Sebastian Huber
2012-11-25 17:48:11 +01:00
parent d2202ac56d
commit 815994fd17
64 changed files with 702 additions and 65 deletions

View File

@@ -24,7 +24,7 @@ exception_handler_t globalExceptHdl = C_exception_handler;
void C_exception_handler(BSP_Exception_frame *excPtr)
{
rtems_fatal(
RTEMS_FATAL_SOURCE_POWERPC_EXCEPTION,
RTEMS_FATAL_SOURCE_EXCEPTION,
(rtems_fatal_code) excPtr
);
}

View File

@@ -85,7 +85,7 @@ void BSP_printStackTrace(const BSP_Exception_frame *excPtr)
}
}
void ppc_exc_print_frame_and_context(const BSP_Exception_frame *excPtr)
void _BSP_Exception_frame_print(const CPU_Exception_frame *excPtr)
{
const Thread_Control *executing = _Thread_Executing;
bool synch = (int) excPtr->_EXC_number >= 0;

View File

@@ -271,8 +271,6 @@ extern exception_handler_t globalExceptHdl;
*/
void C_exception_handler(BSP_Exception_frame* excPtr);
void ppc_exc_print_frame_and_context(const BSP_Exception_frame *excPtr);
void BSP_printStackTrace(const BSP_Exception_frame *excPtr);
/**