Экономия оперативной памяти
при использовании сопрограмм
Оценим объем оперативной памяти, ко-
торый можно сэкономить, применяя сопро-
граммы вместо задач.
Пусть в качестве платформы выбран ми-
кроконтроллер семейства AVR. Настройки
ядра FreeRTOS идентичны настройкам де-
монстрационного проекта, который входит
в дистрибутив FreeRTOS. Рассмотрим два
случая. В первом случае вся функциональ-
ность программы реализована десятью зада-
чами, во втором — десятью сопрограммами.
Оперативная память, потребляемая одной
задачей, складывается из памяти стека и па-
мяти, занимаемой блоком управления зада-
чей. Для условий, приведенных выше, раз-
мер блока управления задачей составляет
33 байт, а рекомендованный минимальный
размер стека — 85 байт. Таким образом, име-
ем 33+85 = 118 байт на каждую задачу. Для
создания 10 задач потребуется 1180 байт.
Оперативная память, потребляемая одной
сопрограммой, складывается только из памя-
ти, занимаемой блоком управления сопро-
граммой. Размер блока управления сопро-
граммой для данных условий равен 26 байт.
Как упоминалось выше, стек для всех сопро-
грамм общий, примем его равным рекомендо-
ванному, то есть 85 байт. Для создания 10 со-
программ потребуется 1026+85 = 345 байт.
Автор этой статьи продолжает знакомить читателя с созданием программ,
работающих под управлением FreeRTOS — операционной системы для
микроконтроллеров. на этот раз речь пойдет об альтернативном способе
реализации многозадачной среды, когда в программе вместо задач ис-
пользуются сопрограммы. Мы оценим достоинства и недостатки исполь-
зования сопрограмм.
FreeRTOS —
операционная система
для микроконтроллеров
Продолжение. Начало в № 2`2011
|