реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> RTOS и батарейная аппаратура, подскажите новичку
Prowler
сообщение Oct 25 2010, 11:47
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 171
Регистрация: 22-03-05
Из: Новосибирск
Пользователь №: 3 578



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

P.S. Сейчас работаю с C8051F930 он вообще будится только по встроенному RTC или по внешним прерываниям, т.е. на нем ОС уже не выйдет из слипа сама, если организована на обычном таймере?!
Go to the top of the page
 
+Quote Post
jasper
сообщение Oct 27 2010, 05:42
Сообщение #2


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



За все ОСРВ не скажу, но у многих есть системная задача с самым низким приоритетом, называется типа Idle Task или как-нибудь подобно.
Она работает только тогда, когда нет больше никаких других активных задач. Выполняет роль своеобразной затычки в системе, также может использоваться для подсчета статистики в системе.
В этой Idle Task может вызываться функция типа Idle Hook (надо смотреть настройки в конфигурации ОСВР), предназначенная для вызова пользовательских функций в системной задаче Idle Task.
Вставьте в тело функции Idle Hook ваш переход в энергосберегающий режим. Как-то так. smile.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 27 2010, 05:45
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Prowler @ Oct 25 2010, 18:47) *
Только начал разбираться с ОСРВ, почитал описания на разные оси. Не понял, как в них организовать энергосберегающие режимы. Т.е. чтобы процессор большую часть времени проводил в слипе, просыпаясь только чтобы выполнить необходимые функции и снова засыпал. Есть ли отличия у разных ОС в этом плане? Или эти миниRTOS не предназначены для таких целей?

Основная идея - организовать работу по событиям. Чтобы никакого поллинга. В этом случае, когда все события обработаны, все пользовательские задачи/треды/процессы находятся в состоянии ожидания, и управление передается системной низкоприоритетной задаче, в которой процессор переводится аппаратно в режим пониженного энергопотребления. Если возникает очередное событие, процессор активизируется, обрабатывает событие в соответствующей задаче и потом опять в спячку. Таким образом, процессор работает только тогда, когда в этом есть необходимость (есть реальная работа + некоторые накладные расходы на организацию работы ОС).


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Oct 27 2010, 06:43
Сообщение #4


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Когда без поллинга никак не обойтись на помощь приходит системный таймер на 1\10\100 мс. Пробуждаемся, делаем опрос, засыпаем.
Обратил внимание, что автор пытается поставить ОСРВ на платформу MCS-51. Тот ещё геморрой, моё мнение, конечно.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 17:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016