misyachniy (01.12.2017 10:21, просмотров: 983)
Отладка с посощью vApplicationStackOverflowHook При заходе в функцию vApplicationStackOverflowHook pxTask и *pcTaskName не доступны (IAR)
//-----------------------------------------------------------------------
void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName )
{
( void ) pcTaskName;
( void ) pxTask;
/* Run time stack overflow checking is performed if
configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook
function is called if a stack overflow is detected. */
taskDISABLE_INTERRUPTS();
for( ;; );
}
По тексту видно, что эти аргументы приводятся к void.
Закоменировал - то же самое.
IAR регистры R0..R4 тоже не показывает.
Просмотрел стек вызовов, судя по всему процессор находиться в режиме супервизора.
Интересно тоже узнать как опрерделять режим работы?
На сайте FreeRTOS пишут, что параметры могут быть поврежлены и рекомендуют смотреть через pxCurrentTCB.
The xTask and pcTaskName parameters pass to the hook function the handle and name of the offending task respectively. Note however, depending on the severity of the overflow, these parameters could themselves be corrupted, in which case the pxCurrentTCB variable can be inspected directly.
Есть ли где подробно расписано как это делать?