Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: RTOS и батарейная аппаратура
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
Prowler
Только начал разбираться с ОСРВ, почитал описания на разные оси. Не понял, как в них организовать энергосберегающие режимы. Т.е. чтобы процессор большую часть времени проводил в слипе, просыпаясь только чтобы выполнить необходимые функции и снова засыпал. Есть ли отличия у разных ОС в этом плане? Или эти миниRTOS не предназначены для таких целей?

P.S. Сейчас работаю с C8051F930 он вообще будится только по встроенному RTC или по внешним прерываниям, т.е. на нем ОС уже не выйдет из слипа сама, если организована на обычном таймере?!
jasper
За все ОСРВ не скажу, но у многих есть системная задача с самым низким приоритетом, называется типа Idle Task или как-нибудь подобно.
Она работает только тогда, когда нет больше никаких других активных задач. Выполняет роль своеобразной затычки в системе, также может использоваться для подсчета статистики в системе.
В этой Idle Task может вызываться функция типа Idle Hook (надо смотреть настройки в конфигурации ОСВР), предназначенная для вызова пользовательских функций в системной задаче Idle Task.
Вставьте в тело функции Idle Hook ваш переход в энергосберегающий режим. Как-то так. smile.gif
dxp
Цитата(Prowler @ Oct 25 2010, 18:47) *
Только начал разбираться с ОСРВ, почитал описания на разные оси. Не понял, как в них организовать энергосберегающие режимы. Т.е. чтобы процессор большую часть времени проводил в слипе, просыпаясь только чтобы выполнить необходимые функции и снова засыпал. Есть ли отличия у разных ОС в этом плане? Или эти миниRTOS не предназначены для таких целей?

Основная идея - организовать работу по событиям. Чтобы никакого поллинга. В этом случае, когда все события обработаны, все пользовательские задачи/треды/процессы находятся в состоянии ожидания, и управление передается системной низкоприоритетной задаче, в которой процессор переводится аппаратно в режим пониженного энергопотребления. Если возникает очередное событие, процессор активизируется, обрабатывает событие в соответствующей задаче и потом опять в спячку. Таким образом, процессор работает только тогда, когда в этом есть необходимость (есть реальная работа + некоторые накладные расходы на организацию работы ОС).
IgorKossak
Когда без поллинга никак не обойтись на помощь приходит системный таймер на 1\10\100 мс. Пробуждаемся, делаем опрос, засыпаем.
Обратил внимание, что автор пытается поставить ОСРВ на платформу MCS-51. Тот ещё геморрой, моё мнение, конечно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.