forked from Imagelibrary/rtems
score: Add RTEMS_FATAL_SOURCE_STACK_CHECKER
This commit is contained in:
@@ -260,7 +260,10 @@ void Stack_check_report_blown_task(Thread_Control *running, bool pattern_ok)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rtems_fatal_error_occurred(0x81);
|
rtems_fatal(
|
||||||
|
RTEMS_FATAL_SOURCE_STACK_CHECKER,
|
||||||
|
running->Object.name.name_u32
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -90,6 +90,13 @@ typedef enum {
|
|||||||
*/
|
*/
|
||||||
RTEMS_FATAL_SOURCE_ASSERT,
|
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.
|
* @brief The last available fatal source.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -88,16 +88,13 @@ rtems_task Init(
|
|||||||
|
|
||||||
void Fatal_extension( uint32_t source, bool is_internal, uint32_t error )
|
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" );
|
printk( "unexpected fatal source\n" );
|
||||||
} else if ( is_internal ) {
|
} else if ( is_internal ) {
|
||||||
printk( "unexpected fatal is internal\n" );
|
printk( "unexpected fatal is internal\n" );
|
||||||
} else if ( error != 0x81 ) {
|
} else if ( error != rtems_build_name( 'T', 'A', '1', ' ' ) ) {
|
||||||
printk( "unexpected fatal error\n" );
|
printk( "unexpected fatal error\n" );
|
||||||
} else {
|
} else {
|
||||||
printk( "*** END OF TEST STACK CHECKER ***\n" );
|
printk( "*** END OF TEST STACK CHECKER ***\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( _System_state_Is_up( _System_state_Get() ) )
|
|
||||||
_Thread_Stop_multitasking();
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user