score: Add RTEMS_FATAL_SOURCE_STACK_CHECKER

This commit is contained in:
Sebastian Huber
2012-11-14 15:10:46 +01:00
parent a0c7aa5555
commit a12f7e98f1
3 changed files with 13 additions and 6 deletions

View File

@@ -260,7 +260,10 @@ void Stack_check_report_blown_task(Thread_Control *running, bool pattern_ok)
}
#endif
rtems_fatal_error_occurred(0x81);
rtems_fatal(
RTEMS_FATAL_SOURCE_STACK_CHECKER,
running->Object.name.name_u32
);
}
/*

View File

@@ -90,6 +90,13 @@ typedef enum {
*/
RTEMS_FATAL_SOURCE_ASSERT,
/**
* @brief Fatal source of the stack checker.
*
* The fatal code is the object name of the executing task.
*/
RTEMS_FATAL_SOURCE_STACK_CHECKER,
/**
* @brief The last available fatal source.
*

View File

@@ -88,16 +88,13 @@ rtems_task Init(
void Fatal_extension( uint32_t source, bool is_internal, uint32_t error )
{
if ( source != INTERNAL_ERROR_RTEMS_API ) {
if ( source != RTEMS_FATAL_SOURCE_STACK_CHECKER ) {
printk( "unexpected fatal source\n" );
} else if ( is_internal ) {
printk( "unexpected fatal is internal\n" );
} else if ( error != 0x81 ) {
} else if ( error != rtems_build_name( 'T', 'A', '1', ' ' ) ) {
printk( "unexpected fatal error\n" );
} else {
printk( "*** END OF TEST STACK CHECKER ***\n" );
}
if ( _System_state_Is_up( _System_state_Get() ) )
_Thread_Stop_multitasking();
}