114
КОМПОНЕНТЫ И ТЕХНОЛОГИИ •
№ 3 '2011
компоненты
микроконтроллеры
FreeRTOSConfig.h. В это время задача 2 на-
ходится в состоянии готовности. После чего
вызывается планировщик, который перево-
дит задачу 1 в состояние готовности, а зада-
чу 2 — в состояние выполнения, так как зада-
чи имеют одинаковый приоритет и задача 1
уже отработала один квант времени.
Пока выполняется задача 1, она увеличи-
вает свой счетчик
ul. Когда планировщик
переводит задачу 1 в состояние готовности,
переменная
ul сохраняется в собственном
стеке задачи 1 и не увеличивается, пока вы-
полняется задача 2. Как только переменная
ul
достигает значения 4000, она обнуляется
(момент времени t1), а логический уровень
на выводе PF0 инвертируется, однако это мо-
жет произойти только в течение кванта вре-
мени выполнения задачи 1. Аналогично ведет
себя задача 2, но ее счетчик обнуляется по до-
стижении значения 8000. Таким образом, эта
простейшая программа генерирует меандр
с «плавающим» полупериодом, а разброс
продолжительности полупериода достигает
одного
системного кванта, то есть 1 мс.
Выводы
В статье
были рассмотрены основ-
ные принципы, заложенные во все ОСРВ.
Описаны соглашения об именах иденти-
фикаторов и типах данных, используемых
в исходном коде ядра FreeRTOS. Большое
внимание уделено задаче как базовой еди-
нице программы для FreeRTOS. Подробно
рассмотрены состояния задачи, дано объяс-
нение понятию приоритета задачи. Описана
API-функция создания задачи
xTaskCreate().
Приведен
пример наипростейшей про-
граммы, выполняющейся под управлением
FreeRTOS, приведены результаты тестиро-
вания и описаны происходящие процессы
без углубления во внутреннюю реализацию
FreeRTOS.
В следующих публикациях будет продол-
жено рассмотрение задач. Подробно будет
рассказано о приоритетах задач, показано,
каким образом можно менять приоритеты
во время выполнения программы. Внимание
будет уделено правильному способу приоста-
навливать задачи на заданное время и фор-
мировать задержки. Будет рассказано о задаче
«бездействие» и о функции, вызываемой каж-
дый системный квант времени. Будет показа-
но, как правильно уничтожать задачи. Весь
материал будет снабжен подробными при-
мерами.
n
Литература
1. Курниц А. FreeRTOS — операционная система
для микроконтроллеров // Компоненты и тех-
нологии. 2011. № 2.
2.
Достарыңызбен бөлісу: