Добавлен вывод стека при HardFault
This commit is contained in:
parent
a651ecaf68
commit
9d70827e65
|
|
@ -431,7 +431,7 @@
|
|||
#endif
|
||||
|
||||
#ifndef configRECORD_STACK_HIGH_ADDRESS
|
||||
#define configRECORD_STACK_HIGH_ADDRESS 0
|
||||
#define configRECORD_STACK_HIGH_ADDRESS 1
|
||||
#endif
|
||||
|
||||
#ifndef configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H
|
||||
|
|
|
|||
25
src/tasks.c
25
src/tasks.c
|
|
@ -5000,3 +5000,28 @@ static void prvAddCurrentTaskToDelayedList(TickType_t xTicksToWait,
|
|||
#endif
|
||||
|
||||
#endif /* if ( configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H == 1 ) */
|
||||
|
||||
|
||||
// Добавьте в конец файла task.c (после всех функций)
|
||||
|
||||
void vTaskGetCurrentTaskStackInfo( void ** ppvStackStart, void ** ppvStackEnd )
|
||||
{
|
||||
TCB_t * pxTCB = pxCurrentTCB;
|
||||
|
||||
if( ppvStackStart != NULL )
|
||||
{
|
||||
*ppvStackStart = ( void * ) pxTCB->pxStack;
|
||||
}
|
||||
|
||||
if( ppvStackEnd != NULL )
|
||||
{
|
||||
#if ( configRECORD_STACK_HIGH_ADDRESS == 1 )
|
||||
*ppvStackEnd = ( void * ) pxTCB->pxEndOfStack;
|
||||
#else
|
||||
// Если pxEndOfStack не определён, можно вычислить его, зная размер стека.
|
||||
// Но размер стека (в словах) не хранится в TCB. Поэтому либо включите
|
||||
// configRECORD_STACK_HIGH_ADDRESS, либо используйте фиксированный лимит.
|
||||
*ppvStackEnd = NULL;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue