Добавлен вывод стека при HardFault
This commit is contained in:
parent
a651ecaf68
commit
9d70827e65
|
|
@ -431,7 +431,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef configRECORD_STACK_HIGH_ADDRESS
|
#ifndef configRECORD_STACK_HIGH_ADDRESS
|
||||||
#define configRECORD_STACK_HIGH_ADDRESS 0
|
#define configRECORD_STACK_HIGH_ADDRESS 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H
|
#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
|
||||||
|
|
||||||
#endif /* if ( configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H == 1 ) */
|
#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