Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Эта статья продолжает знакомить читателя с созданием программ, ра¬ботающих под управлением FreeRTOS — операционной системы для микроконтроллеров. на этот раз внимание будет уделено этапу отладки приложения: мы рассмотрим возможности FreeRTOS, которые помогают найти трудно выявляемые ошибки в программе, определить узкие места программы и оценить пути ее дальнейшего расширения.
Возможности трассировки
Трассировка позволяет исследовать деятельность ядра FreeRTOS и проследить последовательность и время, когда задачи сменяют друг друга, а также отследить другие события ядра.
Последняя версия FreeRTOS (на момент написания статьи — V7.0.1) поддерживает два способа трассировки выполняющейся программы:
Механизм трассировки с записью в буфер (Legacy Trace Utility).
С использованием макросов трассировки (Trace Hook Macros).
Это очередная статья из цикла, посвященного FreeRTOS — операционной системе для микроконтроллеров. Здесь читатель познакомится с нововведением последних версий FreeRTOS — встроенной реализацией программных таймеров
Что представляет собой программный таймер?
В версии FreeRTOS V7.0.0 по сравнению с предыдущими версиями появилось существенное нововведение — встроенная реализация программных таймеров. Программный таймер (далее по тексту — таймер) во FreeRTOS — это инструмент, позволяющий организовать выполнение подпрограммы в точно заданные моменты времени. Читать полностью »
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Автор этой статьи продолжает знакомить читателя с созданием программ, работающих под управлением FreeRTOS — операционной системы для микроконтроллеров. На этот раз речь пойдет об альтернативном способе реализации многозадачной среды, когда в программе вместо задач используются сопрограммы. Мы оценим достоинства и недостатки использования сопрограмм.
Что представляет собой сопрограмма?
В предыдущих публикациях мы говорили о FreeRTOS как о многозадачной операционной системе, и в центре нашего внимания находилась задача (task) — базовая единица программы, работающей под управлением FreeRTOS. Речь шла о том, что программа, работающая под управлением FreeRTOS, разбивается на совокупность задач. Задача представляет собой отдельный поток команд процессора и реализуется в виде функции языка Си. Каждая задача отвечает за небольшую часть функциональности всей программы. Каждая задача выполняется независимо от остальных, но взаимодействует с остальными задачами через механизмы межзадачного взаимодействия. Читать полностью »
Введение Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Статья поможет читателям ответить на следующие вопросы:
1) Что означает термин «ресурс»?
2) Когда и почему необходимо управление доступом к ресурсам?
3) Что такое механизм взаимного исключения и способы его реализации?
4) Что такое критическая секция и способы ее реализации во FreeRTOS?
5) Как применять мьютексы для реализации механизма взаимного исключения?
6) Что такое инверсия приоритетов и как наследование приоритетов позволяет уменьшить (но не устранить) ее воздействие?
7) Другие потенциальные проблемы, возникающие при использовании мьютексов.
8 ) Задачи-сторожа— создание и использование.
9) Функция, вызываемая каждый системный квант времени. Читать полностью »
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Шестая часть статьи посвящена взаимодействию прерываний с остальной частью программы и поможет читателям ответить на следующие вопросы:
1) Какие API-функции и макросы можно использовать внутри обработчиков прерываний?
2) Как реализовать отложенную обработку прерываний?
3) Как создавать и использовать двоичные и счетные семафоры?
4) Как использовать очереди для передачи информации в обработчик прерывания и из него?
5) Каковы особенности обработки вложенных прерываний во FreeRTOS? Читать полностью »
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Мы продолжаем изучение FreeRTOS — операционной системы для микроконтроллеров. В пятой части статьи основное внимание сфокусировано на очередях — безопасном механизме взаимодействия задач друг с другом. Будут показаны опасности организации взаимодействия между задачами «напрямую» и обосновано применение очередей, а также рассказано об основных принципах, заложенных в функционирование очередей. Читатель узнает о том, как создать очередь, как записать данные в очередь и прочитать их оттуда. Будут освещены вопросы целесообразного выбора типа данных, хранящихся в очереди, и назначения приоритетов задачам, которые записывают и считывают данные из очереди. Читать полностью »
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
В этой статье будет продолжено изучение FreeRTOS — операционной системы для микроконтроллеров. Здесь описан процесс принудительного изменения приоритета задач в ходе их выполнения, показано, как динамически создавать и уничтожать задачи. Рассмотрен вопрос о том, как расходуется память при создании задач. Подведен итог по вытесняющей многозадачности во FreeRTOS и рассказано о стратегии назначения приоритетов задачам под названием Rate Monotonic Scheduling. Далее мы обсудим тему кооперативной многозадачности, ее преимущества и недостатки и приведем пример программы, использующей кооперативную многозадачность во FreeRTOS. Автор уделил внимание и альтернативным схемам планирования: гибридной многозадачности и вытесняющей многозадачности без разделения времени. Читать полностью »
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ Продолжать подробное рассмотрение и демонстрацию возможностей FreeRTOS на платформе реального МК не всегда удобно. Гораздo удобнее использовать в качестве платформы любой х86 совместимый настольный компьютер, используя соответствующий порт FreeRTOS. Все последующие примеры будут приведены для порта для х86 совместимых процессоров, работающих в реальном режиме. Мы используем бесплатный пакет Open Watcom, включающий Си-компилятор и среду разработки, об особенностях установки которого будет сказано ниже. Получаемые в результате компиляции и сборки исполнимые (ехе) файлы могут быть выполнены из интерпретатора команд Windows (cmd.exe). В качестве альтернативы можно использовать бесплатный эмулятор ОС DOS под названием DOSBox, который позволит выполнять примеры не только из-под Windows, но и из-под UNIX-подобных (FreeBSD, Fedora, Gentoo Linux) и некоторых других ОС. Читать полностью »
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Прежде чем говорить об особенностях FreeRTOS, следует остановиться на основных принципах работы любой ОСРВ и пояснить значение терминов, которые будут применяться в дальнейшем. Эта часть статьи будет особенно полезна читателям, которые не знакомы с принципами, заложенными в ОСРВ.
Основой ОСРВ является ядро (Kernel) операционной системы. Ядро реализует основополагающие функции любой ОС. В ОС общего назначения, таких как Windows и Linux, ядро позволяет нескольким пользователям выполнять множество программ на одном компьютере одновременно.
Каждая выполняющаяся программа представляет собой задачу (Task). Если ОС позволяет одновременно выполнять множество задач, она является мультизадачной (Multitasking). Читать полностью »