Alex B. (10.06.2008 09:46, просмотров: 215) ответил abivan на И какие пути решения? Кто сможет подчистить за убиенной задачей, мысли есть? Еще вопрос по Idle
Стек за убиенной задачей подчистить может кто угодно. Если TCB уже занят под задачу, то вызов tn_task_create() с этим TCB вернет код ошибки TERR_EXS. Если TCB свободен, то, соответственно, создастся задача. Пока в TNKernel нету сервисов, которые возвращают статус объектов - скоро будут наверное.
Задача простоя просто необходимо - как ты думаешь, что будет делать контроллер, когда ему нечего делать (ни одна из задач не готова к выполнению)? В оригинальной версии задача IDLE вскользь упомянута:
"In TNKernel, the task with priority 0 (highest) is used for supporting the system tick timer functionality and the task with priority 31 (lowest) is used for performing statistics. TNKernel automatically creates these tasks at the system start."
IDLE задачу можно спокойно использовать для подсчета статистики (типа загрузка процессора) или тупо для SLEEP. Кстати, и в jacOS и в Salva idle-задача тоже была, только не явно. В main() вызов OS_Cooperate() в цикле это оно и есть.
Согласуйте импеданс!