AHTOXA 18 1 мая, 2015 Опубликовано 1 мая, 2015 · Жалоба Всем привет. Нежданно-негаданно нарисовалось устройство с требованием минимального потребления. Используется контроллер STM32L0xx. Это Cortex-M0+, специально заточен на это дело. Проблема в том, что я довольно смутно представляю, как подойти к проблеме. К примеру, у меня есть несколько процессов: Процесс периодического чтения данных с внешнего АЦП (через SPI); Процесс обсчёта результатов измерения; Процесс обмена данными по USART (с использованием DMA); Процесс записи накопленных данных в Dataflash (через SPI). И вот, надо все эти процессы прекратить и уснуть до заданного времени. Я пока не совсем понимаю, как это сделать. После некоторых раздумий имею вот такой план: Захватываю выполнение в самом приоритетном процессе; Взвожу какой-то флаг "ПораВсемСпать"; Жду от всех процессов подтверждения готовности ко сну; Отключаю всю оставшуюся периферию. (Процессы свою периферию отключают сами); Засыпаю. Непонятные моменты в таком подходе: Какого вида должен быть флаг "ПораВсемСпать"? (Вот тут не хватает аналога виндового MsgWaitForMultipleObjects()). Если процесс повис на ожидании какого-то объекта синхронизации, то как он получит мой флаг? Как получать подтверждения от процессов? Очередь сообщений? Ещё возможен вариант просто вырубить всю периферию самостоятельно, плюнув на текущую деятельность процессов. (Как тогда вырубить DMA?) В этом случае неясно, что делать со всем этим после пробуждения. Тайм-ауты все испортились, периферию надо заново всю инициализировать, и так далее. Возможно, тут поможет механизм перезапуска процессов? Или уж просто сделать сброс? В общем, коллеги, прошу всех поделиться своими соображениями по данному вопросу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Axel 1 2 мая, 2015 Опубликовано 2 мая, 2015 · Жалоба Если: - предыстория процесса несущественна, либо есть возможность восстановить ее после сброса - нет жестких ограничений на время активзации то с полным сбросом будет спокойнее... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться