Ответ: Года три назад прикручивал юкос вью на мсп. Насколько помню по идеологии системы - OSView_TimeGetCycles()вызвается в шедулере и фиксирует в INT32U время начала работы задачи и окончания. А далее статистика за определенное время и вывод во вьювер.
/*
*********************************************************************************************************
* Tick Hook
*
* This routine is called by uC/OS-II's OSTimeTickHook().
*********************************************************************************************************
*/
static INT16U prev_cnt;
void OSView_TickHook (void){
OSView_CyclesCtr += ((INT32U)CPU_CLK_FREQ / (INT32U)OS_TICKS_PER_SEC);
prev_cnt = TAR;
}
/*
*********************************************************************************************************
* Get time [cycles]
*
* This routine is required for task-info via uC/OS-View.
* It returns the system time in clock cycles.
*********************************************************************************************************
*/
INT32U OSView_TimeGetCycles (void)
{
INT16U t_cnt;
// OS_ENTER_CRITICAL();
t_cnt = TAR;
// OS_EXIT_CRITICAL();
return (OSView_CyclesCtr + (INT32U)(t_cnt - prev_cnt));
}