-
- Идея понятна, спасибо за наводки. Погляжу сначала на модуль OSView, может, там уже сделано. - VVB_(07.05.2009 17:39, )
- Я использовал Хуки, вызываемые при переключении задач. Получилось точно и аккуратно. - =AlexD=(07.05.2009 13:53)
- Можно чуть подробнее? Как их (хуки) можно использовать для этой цели? - VVB(07.05.2009 13:59)
- можно пользовать любые хуки(см. их назначение), которые имеются в файле порта os_cpu_c.c Sergey Pinigin(117 знак., 07.05.2009 14:37)
- Да фигли тут подробнее. Пишешь Хук. Для каждой задачи инитишь в TCB указатель на свою структуру счётчиков времени. Когда задача переключается - вызывается ваш Хук. Хук берёт текущий счётчик времени (из регистров ЦПУ или Таймера, смотря чё есть) и смотрит =AlexD=(107 знак., 07.05.2009 14:08)
- Можно чуть подробнее? Как их (хуки) можно использовать для этой цели? - VVB(07.05.2009 13:59)
- Самое простое - запустить в Idle счетчик и перед созданием пользовательских задач затупить, к примеру, на 0.5-1 сек. Alex B.(236 знак., 07.05.2009 13:33)
- Ссылку в студию. В uCOS задача OS_TaskStat() именно таки образом и работает. Её приоритет выше чем у OS_TaskIdle() и ниже чем у весх остальных, поэтому OSCPUUsage не будет обновляться, если OS_TaskStat() не получит управления. - VVB(07.05.2009 13:58)
- вот. Принцип такой же как у =AlexD=. Правда не понимаю, чем счетчик в idle не устраивает. Alex B.(344 знак., 07.05.2009 14:24, ссылка)
- Ссылку в студию. В uCOS задача OS_TaskStat() именно таки образом и работает. Её приоритет выше чем у OS_TaskIdle() и ниже чем у весх остальных, поэтому OSCPUUsage не будет обновляться, если OS_TaskStat() не получит управления. - VVB(07.05.2009 13:58)