есть система, в которой реалтаймовая часть (прерывания, флаги/семафоры и т.п.) взаимодействует с некими вычислительными задачами, которые являются вычислениями и время завершения цикла неопределено и большое (ну и код соответственно большой/ветвистый и вставить в него ожидание каких-то событий типа OSSemPend трудно)
таких задач несколько, ну и также хочется, чтобы статистическая задача работала
кажется, что это можно сделать так :
в uCOS эти вычислительные задачи получают приоритеты ниже самой низкоприоритетной реал-таймовой задачи,
в задачу с высоким (наверно самым высоким) uCOS приоритетом вставляется "шедулер"
высокоприоритетная задача (uCOS priopity=1) срабатывает по периодическому таймеру,
в этой задаче суспендятся эти три вычислительные задачи и инкрементируется счетчик
каждое второе срабатывание запускается более приоритетная задача,
каждое четвертое со средним приоритетом
ну и каждое 8 - с низким
при этом приоритеты означают не приоритеты uCOS, а количество времени, которое процессор тратит на задачу
(возможно равномерное распределение - каждый тик одна задачка суспендится, одна запускается, но это не нужно)
остальное время выделено на статистическую+IDLE
ничего я тут не перемудрил?
будет это работать (предполагается использовать OSTaskSuspend(), OSTaskResume())?
может такая фигня есть уже в uCOS? (давно не имел дело с uCOS)