Posts tagged ‘FreeRTOS’

FreeRTOS — операционная система для микроконтроллеров. Часть 10. Отладка приложения.


Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Эта статья продолжает знакомить читателя с созданием программ, ра¬ботающих под управлением FreeRTOS — операционной системы для микроконтроллеров. на этот раз внимание будет уделено этапу отладки приложения: мы рассмотрим возможности FreeRTOS, которые помогают найти трудно выявляемые ошибки в программе, определить узкие места программы и оценить пути ее дальнейшего расширения.

Возможности трассировки

Трассировка позволяет исследовать дея­тельность ядра FreeRTOS и проследить по­следовательность и время, когда задачи сме­няют друг друга, а также отследить другие события ядра.

Последняя версия FreeRTOS (на момент написания статьи — V7.0.1) поддерживает два способа трассировки выполняющейся программы:

  1. Механизм трассировки с записью в буфер (Legacy Trace Utility).
  2. С использованием макросов трассировки (Trace Hook Macros).

Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 9. Программная реализация таймеров.



Андрей Курниц
kurnits@stim.by

Это очередная статья из цикла, посвященного FreeRTOS — операционной системе для микроконтроллеров. Здесь читатель познакомится с нововведением последних версий FreeRTOS — встроенной реализацией про­граммных таймеров

Что представляет собой программный таймер?

В версии FreeRTOS V7.0.0 по сравне­нию с предыдущими версиями появилось существенное нововведение — встроен­ная реализация программных таймеров. Программный таймер (далее по тексту — таймер) во FreeRTOS — это инструмент, позволяющий организовать выполнение подпрограммы в точно заданные моменты времени.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 8. Сопрограммы

Введение

Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Автор этой статьи продолжает знакомить читателя с созданием программ, работающих под управлением FreeRTOS — операционной системы для микроконтроллеров. На этот раз речь пойдет об альтернативном способе реализации многозадачной среды, когда в программе вместо задач ис­пользуются сопрограммы. Мы оценим достоинства и недостатки использования сопрограмм.

Что представляет собой сопрограмма?

В предыдущих публикациях  мы говори­ли о FreeRTOS как о многозадачной операци­онной системе, и в центре нашего внимания находилась задача (task) — базовая единица программы, работающей под управлением FreeRTOS. Речь шла о том, что программа, работающая под управлением FreeRTOS, разбивается на совокупность задач. Задача представляет собой отдельный поток команд процессора и реализуется в виде функции языка Си. Каждая задача отвечает за неболь­шую часть функциональности всей програм­мы. Каждая задача выполняется независимо от остальных, но взаимодействует с осталь­ными задачами через механизмы межзадач­ного взаимодействия.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 7. Совместный доступ к одному ресурсу.

Введение
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Статья поможет читателям ответить на следующие вопросы:

1) Что означает термин «ресурс»?
2) Когда и почему необходимо управление доступом к ресурсам?
3) Что  такое механизм взаимного исключения и способы его реали­зации?
4) Что такое критическая секция и способы ее реализации во FreeRTOS?
5) Как применять мьютексы для реализации механизма взаимного исключения?
6) Что такое инверсия приоритетов и как наследование приоритетов позволяет уменьшить (но не устранить) ее воздействие?
7) Другие потенциальные проблемы, возникающие при использова­нии мьютексов.
8 ) Задачи-сторожа— создание и использование.
9) Функция, вызываемая каждый системный квант времени.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 6. Создание программ под управлением RTOS


Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Шестая часть статьи посвящена взаимо­действию прерываний с остальной частью программы и поможет читателям ответить на следующие вопросы:

1) Какие API-функции и макросы можно ис­пользовать внутри обработчиков преры­ваний?

2)  Как реализовать отложенную обработку прерываний?

3)  Как   создавать и использовать двоичные и счетные семафоры?

4)  Как использовать очереди для передачи информации в обработчик прерывания и из него?

5)  Каковы особенности обработки вложен­ных прерываний во FreeRTOS?
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 5. Очереди



Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Мы продолжаем изучение FreeRTOS — операционной системы для микро­контроллеров. В пятой части статьи основное внимание сфокусировано на очередях — безопасном механизме взаимодействия задач друг с дру­гом. Будут показаны опасности организации взаимодействия между зада­чами «напрямую» и обосновано применение очередей, а также рассказано об основных принципах, заложенных в функционирование очередей. Читатель узнает о том, как создать очередь, как записать данные в очередь и прочитать их оттуда. Будут освещены вопросы целесообразного выбора типа данных, хранящихся в очереди, и назначения приоритетов задачам, которые записывают и считывают данные из очереди.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 4. Приоритеты. Выделение памяти.

Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
В этой статье будет продолжено изучение FreeRTOS — операционной систе­мы для микроконтроллеров. Здесь описан процесс принудительного изме­нения приоритета задач в ходе их выполнения, показано, как динамически создавать и уничтожать задачи. Рассмотрен вопрос о том, как расходуется память при создании задач. Подведен итог по вытесняющей многозадачности во FreeRTOS и рассказано о стратегии назначения приоритетов задачам под названием Rate Monotonic Scheduling. Далее мы обсудим тему кооператив­ной многозадачности, ее преимущества и недостатки и приведем пример про­граммы, использующей кооперативную многозадачность во FreeRTOS. Автор уделил внимание и альтернативным схемам планирования: гибридной много­задачности и вытесняющей многозадачности без разделения времени.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 3. Задачи и события.

Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Продолжать подробное рас­смотрение и демонстрацию возможностей FreeRTOS на платформе реального МК не всегда удобно. Гораздo удобнее использовать в ка­честве платформы любой х86 совместимый настольный компьютер, используя соответствующий порт FreeRTOS. Все последующие при­меры будут приведены для порта для х86 совместимых процессоров, работающих в реальном режиме. Мы используем бесплатный пакет Open Watcom, включающий Си-компилятор и среду разработки, об особенностях установки которого будет сказано ниже. Получаемые в результате компиляции и сборки исполнимые (ехе) файлы могут быть выполнены из интерпретатора команд Windows (cmd.exe). В ка­честве альтернативы можно использовать бесплатный эмулятор ОС DOS под названием DOSBox, который позволит выполнять примеры не только из-под Windows, но и из-под UNIX-подобных (FreeBSD, Fedora, Gentoo Linux) и некоторых других ОС.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 2. Основы работы ОСРВ

Основы работы ОСРВ

Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Прежде чем говорить об особенностях FreeRTOS, следует остановиться на основных принципах работы любой ОСРВ и пояснить значение терминов, которые будут приме­няться в дальнейшем. Эта часть статьи будет особенно полезна читателям, которые не зна­комы с принципами, заложенными в ОСРВ.

Основой ОСРВ является ядро (Kernel) опе­рационной системы. Ядро реализует осново­полагающие функции любой ОС. В ОС об­щего назначения, таких как Windows и Linux, ядро позволяет нескольким пользователям выполнять множество программ на одном компьютере одновременно.

Каждая выполняющаяся программа пред­ставляет собой задачу (Task). Если ОС позволя­ет одновременно выполнять множество задач, она является мультизадачной (Multitasking).
Читать полностью »

Comment