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
|
||||
|
||||
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,
|
||||
|
||||
/**
|
||||
* @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.
|
||||
*
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user