|
Заставить MSP430 спать все свободное время |
|
|
|
Jun 20 2011, 08:49
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 23-11-05
Пользователь №: 11 254

|
Добрый день. Вопрос собственно в заголовке. Надо чтобы контроллер MSP430F149 все свободное время спал. Достаточно ли будет написать так: Код void OS::IdleProcessUserHook() { LPM0; } PS использую IAR
|
|
|
|
|
 |
Ответов
|
Jun 22 2011, 14:55
|

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

|
Цитата(MrYuran @ Jun 22 2011, 20:45)  Ещё вопрос на засыпку: а оно обязательно, вытесняющее планирование? Как-то у меня в голове энергосбережение и постоянный запуск планировщика вместе не вяжутся... Как раз-таки очень вяжется - когда все процессы работу сделали и ждут своих событий, то процессор спокойно падает в спячку, из которой будет поднят по событию (внешнему или внутреннему). Работает только полезный код (т.е. тот, кому реально есть, что делать). Ну, не без накладных, конечно, на передачу управления, но это мизер, имхо. А без этого придётся заниматься поллингом тех или иных событий с каким-то периодом - это и есть непроизводительный расход энергии. Можно и без оси делать всё по событиям, но тут придётся всю обработку городить в обработчиках прерываний, а это не очень-то красиво и функционально, и всё равно похоже на работу ос с event-driven управлением, особенно, если контроллер прерываний многоуровневый приоритетный.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jun 22 2011, 17:37
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (dxp @ Jun 22 2011, 17:55)  Как раз-таки очень вяжется - когда все процессы работу сделали и ждут своих событий, то процессор спокойно падает в спячку, из.... Я думаю, что тут народ волнуется о том, что системный таймер будет периодически будить и система будет считать время, даже если кто-то захочет поспать интервал времени много превышающий тик системного таймера. QUOTE (dxp @ Jun 22 2011, 17:55)  Можно и без оси делать всё по событиям, но тут придётся всю обработку городить в обработчиках прерываний... Однажды, выжимая все и вся пришлось  написать такой вот: CODE __noreturn void main(void) { for(;; ) __sleep(); }
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 23 2011, 02:56
|

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

|
Цитата(zltigo @ Jun 23 2011, 00:37)  Я думаю, что тут народ волнуется о том, что системный таймер будет периодически будить и система будет считать время, даже если кто-то захочет поспать интервал времени много превышающий тик системного таймера. Ну, дык, заблокировать и его, ежели он не нужен и мешает. Цитата(zltigo @ Jun 23 2011, 00:37)  Однажды, выжимая все и вся пришлось  написать такой вот: Код __noreturn void main(void) { for(;; ) __sleep(); }
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jun 23 2011, 10:42
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (dxp @ Jun 23 2011, 05:56)  Ну, дык, заблокировать и его, ежели он не нужен и мешает. Это понятно, когда будить можно по внешнему событию, но кому тогда сказать разбудить, например, через сутки  ? Придется делать нечто софтовое или аппаратное позволяющее формировать большие временные интервалы с минимальными затратами энергии.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
aliko Заставить MSP430 спать все свободное время Jun 20 2011, 08:49 aliko Наверное вопрос сочли слишком глупым чтобы на него... Jun 21 2011, 10:46 SSerge Цитата(aliko @ Jun 21 2011, 17:46) 1) Я т... Jun 21 2011, 12:26  aliko Цитата(SSerge @ Jun 21 2011, 16:26) Тут у... Jun 22 2011, 08:11   dxp Цитата(aliko @ Jun 22 2011, 15:11) Ну воб... Jun 22 2011, 11:58   zltigo QUOTE (aliko @ Jun 22 2011, 11:11) IdlePr... Jun 22 2011, 12:10 aliko ЦитатаЧто вы предлагаете делать, когда все ваши пр... Jun 22 2011, 12:02 MrYuran Цитата(aliko @ Jun 22 2011, 16:02) Если у... Jun 22 2011, 12:33 dxp Цитата(aliko @ Jun 22 2011, 19:02) Ну в о... Jun 22 2011, 12:35 aliko ЦитатаМне было бы тоже очень интересно узнать про ... Jun 22 2011, 13:19 dxp Цитата(aliko @ Jun 22 2011, 20:19) Как-то... Jun 22 2011, 13:36      zltigo QUOTE (MrYuran @ Jun 23 2011, 13:46) А ди... Jun 23 2011, 11:08 aliko ЦитатаЕщё вопрос на засыпку: а оно обязательно, вы... Jun 22 2011, 13:49 jorikdima Приветствую.
Не буду создавать отдельную тему, тут... Jun 26 2011, 17:50 MrYuran Цитата(jorikdima @ Jun 26 2011, 21:50) В ... Jun 27 2011, 06:31  jorikdima Цитата(MrYuran @ Jun 27 2011, 10:31) Тогд... Jun 27 2011, 13:00 jorikdima Не появилось ни у кого идей по моему вопросу? Sep 12 2011, 16:17 dxp Цитата(jorikdima @ Sep 12 2011, 23:17) Не... Sep 15 2011, 09:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|