Добавлен вывод стека при HardFault

This commit is contained in:
cfif 2026-07-14 17:34:02 +03:00
parent a651ecaf68
commit 9d70827e65
2 changed files with 26 additions and 1 deletions

View File

@ -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

View File

@ -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
}
}