Миро Самек "Использование режимов малого энергопотребления в простых программных архитектурах" (перевод)
Атомарные режимы низкого потребления
Постоянная работа процессора с максимальной скоростью не приведёт к созданию низкопотребляющего устройства, даже при использовании самого низкопотребляющего контроллера. Наибольшая экономия энергии достигается при переодическом программном переводе процессора в режим сна.
Простейшие программные архитектуры с приоритетной и фоновой задачами требуют, чтобы переход в режим малого потребления был атомарным, или, как минимум, безопасным с точки зрения обработки прерываний. Это требование не является обязательным, если используется более сложная структура программного обеспечения, например, операционная система реального времени или вытесняющее переключение задач. Если все задачи ждут появления каких-либо событий и готовых к работе нет, то ядро операционной системы запускает специальную "пустую" задачу (idle task).
Большинство операционных систем предоставляют возможность подредактировать "пустую" задачу (используя обратные вызовы или макросы) так, чтобы дать возможность перейти внутри неё в режим сна. Основным отличием вытесняющего ядра от приоритетно/фоновой архитектуры в том, что, как только появляется какая-либо готовая к работе задача, ядро отменяет переключение контекста обратно к "пустому" циклу. Соответственно, переключение в режим малого потребления существенно упрощается, потому что в нём не требуется управлять прерываниями. К сожалению, операционная система не всегда подходит для процессоров начального уровня, так как у них может просто не быть нужного количества оперативной памяти.
/ Миро Самек (Miro Samek) президент компании Quantum Leaps, LLC, предлагающей методику и набор открытых исходных текстов для построения внутреннего программного обеспечения встраиваемых систем. Автор книги "Практические диаграммы состояний на C/C++ (CMP Books, 2002), многих журнальных публикаций и постоянный участник Embedded Systems Conferences. Ему можно написать по адресу miro@quantum-leaps.com. /
Ссылки:
0. Оригинальная публикация и страничка переводчика.
1. Freescale Semiconductors, MC68HC908QY4/D datasheet, 2010.
2. Texas Instruments, MSP430x1xx Family User's Guide, 2006.
3. Atmel, ATtiny4/5/9/10 Datasheet, 2011.
4. Atmel, AT91SAM7S32 Datasheet, 2012.
5 ARM Ltd., ARM v7-M Architecture Application Level Reference Manual, 2007.
6 ARM Ltd., Cortex-M3 Technical Reference Manual, 2010.
7. Luminary Micro, LM3S811 Microcontroller datasheet, 2012.
8. Renesas, M16C/62 Group (M16C/62P) Hardware Manual, 2006.
9. Samek, Miro and Robert Ward, "Build a Super Simple Tasker" /Embedded Systems Design/, July 2006, p. 18.
- блог пользователя teap0t
- 45494 просмотра
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F
- Self-powered камера
- Фоновый модулятор: беспроводная связь из ничего (перевод)
- Texas Instruments Analog Applications Journal SLYT612 "Снижение искажений в аналоговых КМОП ключах" (перевод)
- USB MSD. Часть 6. Команды SCSI (перевод)
- USB MSD. Часть 3. USB класс накопителей данных (перевод)
- Texas Instruments Application Report SBAA042 "Кодовые схемы, используемые в аналогово-цифровых преобразователях" (перевод)
- 10 принципов правильного интерфейса
- Релиз SDK на русский микропроцессор КРОЛИК
Recent comments
5 лет 20 недель назад
5 лет 35 недель назад
5 лет 45 недель назад
5 лет 47 недель назад
6 лет 3 недели назад
6 лет 27 недель назад
6 лет 28 недель назад
6 лет 31 неделя назад
6 лет 42 недели назад
7 лет 22 недели назад