Могу подарить идею (если надо простую)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено smav 14 октября 2004 г. 16:04
В ответ на: Направте, пожалуйста, на доступную в исходниках, написанную на ANSI-C, cooperative RTOS (или scheduler, task switcher). отправлено kost 14 октября 2004 г. 15:21

Называется ОС суперлуп-2.
Каждая задача оформляется в виде функции.
Для каждой задачи заводится бит в общей битовой маске - признак ее выполнения.
Основной цикл выполнен тоже в виде функции (назовем ее MainLoop). Для каждой функции-подзадачи он проверяет признак выполнения, и если она не выполняется - ставит признак выполнения и запускает функцию. После выхода из функции признак выполнения сбрасывается. Можно адреса функций-подзадач поместить в массив и тогда основной цикл будет не зависет от числа и типа подзадач.
Если подзадаче нужно подождать какого-либо события, то она в цикле ожидания вызывает MainLoop давая возможность выполняться другим еще не запущенным задачам.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru