Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: scmRTOS и глубокий сон. Как сочетать?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > scmRTOS
AHTOXA
Всем привет.

Нежданно-негаданно нарисовалось устройство с требованием минимального потребления. Используется контроллер STM32L0xx. Это Cortex-M0+, специально заточен на это дело.
Проблема в том, что я довольно смутно представляю, как подойти к проблеме. К примеру, у меня есть несколько процессов:
  • Процесс периодического чтения данных с внешнего АЦП (через SPI);
  • Процесс обсчёта результатов измерения;
  • Процесс обмена данными по USART (с использованием DMA);
  • Процесс записи накопленных данных в Dataflash (через SPI).

И вот, надо все эти процессы прекратить и уснуть до заданного времени.
Я пока не совсем понимаю, как это сделать. После некоторых раздумий имею вот такой план:
  • Захватываю выполнение в самом приоритетном процессе;
  • Взвожу какой-то флаг "ПораВсемСпать";
  • Жду от всех процессов подтверждения готовности ко сну;
  • Отключаю всю оставшуюся периферию. (Процессы свою периферию отключают сами);
  • Засыпаю.

Непонятные моменты в таком подходе:
  • Какого вида должен быть флаг "ПораВсемСпать"? (Вот тут не хватает аналога виндового MsgWaitForMultipleObjects()).
  • Если процесс повис на ожидании какого-то объекта синхронизации, то как он получит мой флаг?
  • Как получать подтверждения от процессов? Очередь сообщений?


Ещё возможен вариант просто вырубить всю периферию самостоятельно, плюнув на текущую деятельность процессов. (Как тогда вырубить DMA?)
В этом случае неясно, что делать со всем этим после пробуждения. Тайм-ауты все испортились, периферию надо заново всю инициализировать, и так далее.
Возможно, тут поможет механизм перезапуска процессов? Или уж просто сделать сброс?

В общем, коллеги, прошу всех поделиться своими соображениями по данному вопросу.
Axel
Если:
- предыстория процесса несущественна, либо есть возможность восстановить ее после сброса
- нет жестких ограничений на время активзации
то с полным сбросом будет спокойнее...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.