Алексеевский П. И.,

Кудрявцев А. В.

УрГПУ

г. Екатеринбург


Изучение возможностей ОСРВ при подготовке ИТ-специалистов в педагогическом вузе


В статье рассматривается вариант расширения содержания обучения программированию микроконтроллеров в педагогических вузах путём включения в него рассмотрения основных принципов использования операционной системы реального времени. Приведён пример задачи, позволяющей наглядно продемонстрировать целесообразность такого подхода.


Alexeevskiy PI.,

Kudryavtsev AV.

USPU

Yekaterinburg, Russia


A study of RTOS features in an IT specialists training at pedagogical universities


The paper explores a way to expand the educational content of the microcontrollers programming course in pedagogical universities by including the study of basic principles of the real-time operating systems usage. An example showing the expedience of this approach is provided.


Помимо подготовки педагогических кадров, в настоящее время педагогические вузы нередко занимаются также подготовкой и ИТ-специалистов. Программа подготовки включает изучение устройства и принципов работы различных операционных систем, среди которых упоминаются ОС реального времени (ОСРВ, также RTOSReal-Time Operating System). Ввиду специфики применения, данный класс операционных систем сложно полноценно продемонстрировать учащимся, используя исключительно возможности настольных ПК. При этом в план подготовки входит изучение дисциплин, связанных с программированием устройств на базе микроконтроллеров, где применение ОСРВ оправдано при решении ряда задач, и такие системы могут быть наглядно продемонстрированы на простых примерах.

В отличие от технических вузов, где могут использоваться платформы на основе различных семейств современных высокопроизводительных микроконтроллеров, а изучение методов их программирования может в явном виде включать работу с ОСРВ, техническое обеспечение педагогических вузов имеет особенности. В силу отраслевой специфики, технопарки педвузов оснащаются оборудованием, которое поставляется в школы. В связи с этим, представленные в технопарках учебные комплекты на базе микроконтроллеров основываются преимущественно на платформе Arduino (различные аналоги Arduino Uno, а также специализированные варианты, как, например, в наборах «ТехноЛаб»), реже — Iskra JS.

В обучении программированию микроконтроллеров на платформе Arduino, как правило, используются только те подходы, которые рассматриваются в официальной документации на эту платформу в качестве руководства для начинающих. Эти подходы, за исключением отдельных тем (таких как работа с прерываниями), подразумевают строго последовательное выполнение операций, что не для всех возможных задач является удобным. При решении задач, требующих одновременной работы со множеством различных датчиков и исполнительных элементов, могут возникнуть сложности с синхронизацией всех необходимых действий. Это приводит к затруднениям при объяснении студентам структуры таких алгоритмов, а также приводит к увеличению трудозатрат на их реализацию учащимися.

Решение подобного рода задач в промышленности нередко основывается на использовании операционных систем реального времени [2]. Комплекты средств разработки для современных микроконтроллеров обычно включают по крайней мере одну из таких систем.

Ввиду низкой производительности и сравнительно малого набора интегрированной периферии в микроконтроллерах семейства AVR, используемых в большинстве платформ Arduino, выбор операционной системы ограничен. Тем не менее, существует официально поддерживаемый вариант операционной системы FreeRTOS, доступной также для множества других семейств микроконтроллеров (преимущественно на основе ARM Cortex-M) [1]. В связи с распространённостью и поддержкой различных семейств микроконтроллеров, а также поддержкой основного функционала ОСРВ, данная ОС является одной из предпочтительных для изучения, в расчёте на дальнейшую применимость полученных знаний.

Целесообразность использования ОСРВ для решения практических задач с использованием микроконтроллеров может быть продемонстрирована на нескольких простых примерах. Ниже рассмотрены два таких примера.

Обычно в начале изучения программирования микроконтроллеров рассматривается проект, мигающий светодиодом с заданной периодичностью. Для обоснования целесообразности использования ОСРВ, рассмотрим усложнённый вариант такой задачи.

Предположим, что к плате Arduino (или аналогичной) подключено три светодиода (в приведённых ниже примерах они должны быть подключены к портам 7, 8 и 9). Первый из них должен мигать с периодом в одну секунду, второй — в две секунды, третий — в три секунды. Один из вариантов решения такой задачи «классическим» способом, без использования ОС, предполагает выявление всех возможных комбинаций состояний светодиодов. Пример программы, решающей данную задачу таким способом, приведён на рисунке 1.


Рис. 1 – Пример классического решения задачи

 

Несмотря на небольшой размер исходного кода программы, какие-либо модификации условия (изменение количества светодиодов и/или периода их мигания) потребуют существенной переработки программы.

Более доступным для объяснения решением стало бы выделение алгоритма мигания светодиодом в отдельную подзадачу. Такая подзадача сама по себе незначительно отличалась бы от прилагаемого к среде Arduino примера «Blink». Решение данной задачи с использованием ОСРВ приведено на рисунке 2.


Рис. 2 – Пример решения задачи с использованием FreeRTOS

 

В данном решении создаётся несколько задач, выполняющихся псевдопараллельно. За переключение отвечает планировщик задач ОС FreeRTOS, запускаемый вызовом функции vTaskStartScheduler() [3]. Каждая из созданных задач обеспечивает мигание только назначенным ей светодиодом, порт которого вместе с периодом передаётся ей в качестве параметра. При этом программный код для каждой из задач используется один и тот же, разница заключается только в значениях переменных в контексте каждой из задач. Модификация условия (изменение количества светодиодов и периода) потребует лишь изменения параметров задач и их количества.

Аналогичным образом могут быть решены робототехнические задачи. Например, опрос датчиков может осуществляться независимо от основного алгоритма работы, что позволит упростить реализацию алгоритма работы устройства в целом.

Внедрение изучения подходов к разработке ПО для микроконтроллеров на основе ОСРВ способно повысить доступность учебного материала для учащихся за счёт снижения трудоёмкости реализации алгоритмов, одновременно позволяя ознакомиться с современными инструментами разработки. Использование в этих целях распространённых вариантов ОС (в частности, FreeRTOS) даёт возможность применения полученных знаний при изучении других, более производительных, платформ, используемых в различных научных и промышленных отраслях.

 

Литература:

1. Аверьянихин, А. Е. Обзор возможностей операционной системы реального времени FreeRTOS, применяемой в микроконтроллерах / А. Е. Аверьянихин, М. А. Фадеев, Е. А. Олисевич // Технологии инженерных и информационных систем. – 2020. – № 4. – С. 56-63.

2. Данченко, Д. Г. Операционные системы реального времени / Д. Г. Данченко // Форум молодых ученых. – 2018. – № 1(17). – С. 325-332. – EDN YTDDJN.

3. Ильичов, Д. Э. Обобщенное описание внутреннего устройства ядра операционной системы FreeRTOS / Д. Э. Ильичов, А. Д. Челышев, Л. Д. Грязнов // АКТУАЛЬНЫЕ ВОПРОСЫ ПЕДАГОГИКИ : сборник статей VIII Международной научно-практической конференции, Пенза, 05 ноября 2021 года. – Пенза: Наука и Просвещение (ИП Гуляев Г.Ю.), 2021. – С. 175-177.

вопросы и комментарии: