Операционные системы реального времени для контроллеров STM32
Комплексный анализ существующих операционных систем реального времени для семейства микроконтроллеров STM32. Виды ОСРВ, их сравнение относительно друг друга, выявление основных параметров и характеристик, определение структуры операционной системы.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | статья |
Язык | русский |
Дата добавления | 25.02.2019 |
Размер файла | 107,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ФГБОУ ВО «Брянский государственный университет имени академика И.Г. Петровского», Брянск
Операционные системы реального времени для контроллеров STM32
Данченко Д.Г.
В настоящее время большой популярностью обладают микроконтроллеры STM32. Данные контроллеры предлагают за свою небольшую стоимость огромный потенциал более серьезных промышленных контроллеров, например, максимальная частота самого контроллера, количество входов/выходов, объем памяти, подключение внешней периферии и многое другое. Именно поэтому далее пойдет речь только о контроллерах STM32 и его применении в различных предложениях современного рынка.
Контроллеры производства STMicroelectronic все больше находят свое применение в промышленных задачах и точных приборах. Ядро Cortex, на котором строятся все контроллеры, обладают большим потенциалом и делают STM32 универсальным решением для многих сложных проектов за свою небольшую стоимость. Благодаря таким достижениям, ОСРВ не обошла стороной. Для STM32 существует большое количество операционных систем (таблица 1):
Таблица 1. Виды операционных систем реального времени
Компания |
Название ОС |
Описание |
ROM |
RAM |
|
Real Time Engineers Ltd |
FreeRTOS |
Надежная портируемая ОСРВ с открытыми исходными кодами в двух вариантах - платный и бесплатный, с возможностью технической поддержки. |
4,2 Кб |
1 Кб |
|
Micrium |
µC/OS |
Легко портируемая, масштабируемая ОСРВ, поддерживающая многозадачность (до 250), сертифицированная для критических условий эксплуатации (медицина, авиация) |
16 Кб |
2 Кб |
|
IAR |
PowerPac |
Полноценная ОСРВ с высокоэффективной файловой системой. |
2…4 Кб |
51 байт |
|
Quadros System |
RTXC Quadro |
Гибкая, масштабируемая ОСРВ с большим набором стеков и драйверов для периферии. |
<20 Кб |
=<4 Кб |
|
Keik |
ARTX-ARM |
Многозадачная вытесняющая ОСРВ, поддерживающая почтовый ящик и pool памяти, включает файловую систему и передачу данных по TCP/IP |
6 Кб |
0,5 Кб |
|
CMX |
CMX-RT |
Операционная системы реального времени, которая поддерживает многозадачность, без отчислений |
<10 Кб |
<1 Кб |
Но наибольшую популярность из всего количества приобрела система FreeRTOS. Данная система поддерживается всеми линейками микроконтроллера, начиная от энергоэффективных и заканчивая высокопроизводительными контроллерами. FreeRTOS является абсолютно бесплатной и официальной ОС в пакете разработки проекта STM32CubeMX.
FreeRTOS - это многозадачная, мультиплатформенная, бесплатная операционная система жесткого реального времени с открытым исходным кодом. Данная система была разработана Real Time Engineers Ltd. Специально для встраиваемых систем. ОС поддерживает 23 архитектуры и 57 платформ, из которых подавляющее большинство - микроконтроллеры.
Большая часть системы написана на языке С, но также присутствуют ассемблерные вставки кода, где невозможно применить язык С из-за специфики конкретной аппаратной платформы.
Основные характеристики FreeRTOS:
Планировщик поддерживает 3 типа многозадачности: вытесняющую, кооперативную, гибридную
Размер ядра составляет всего 4-9 Кб в зависимости от типа платформы и настроек ядра
Исходный код ОС представлен в виде всего 4-х С-файлов
Поддерживает задачи (tasks) и сопрограммы (co-routines). Сопрограммы специально созданы для микроконтроллеров с малым объемом оперативной памяти
Большие возможности трассировки
Присутствует возможность отслеживания факта переполнения стека
Нет программных ограничений на количество одновременно выполняемых задач
Нет программных ограничений на количество приоритетов задач
Нет ограничений в использовании приоритетов: нескольким задачам может быть назначен один и тот же приоритет
Развитые средства синхронизации «задача-задача» и «задача-прерывание»
Поддержка модуля защиты памяти (Memory protection unit, MPU)
Поставляется с отлаженными примерами проектов для каждого порта и для каждой среды разработки
Полностью бесплатна, лицензия GPL позволяет использовать ОС в проектах без раскрытия исходного кода
Присутствует большое количество документации
Работа планировщика в режиме вытесняющей многозадачности имеет много общего с алгоритмом переключения потоков в современных ОС общего применения. Такая многозадачность предполагает, что любая выполняющаяся задача с низким приоритетом прерывается готовой к выполнению задачей с более высоким приоритетом. Как только высокоприоритетная задача выполнила свои действия, она переходит в состояние ожидания, и управление получает снова задача с низким приоритетом. Переключение между задачами осуществляется через равные промежутки времени работы планировщика, то есть высокоприоритетная задача, готовая к выполнению, ожидает окончания текущего момента времени, после чего управление получает планировщик, который в свою очередь передает управление высокоприоритетной задаче.
Таким образом, время реакции FreeRTOS на внешние события в режиме вытесняющей многозадачности -- не больше одного кванта времени планировщика, который можно задавать в настройках. По умолчанию он равен 1 мс.
Если готовы к выполнению несколько задач с одинаковым приоритетом, то в таком случае планировщик выделяет каждой из них по одному кванту времени, по истечении которого управление получает следующая задача с таким же приоритетом, и так далее по кругу.
Кооперативная многозадачность отличается от вытесняющей тем, что планировщик самостоятельно не может прервать выполнение текущей задачи, даже если появилась готовая к выполнению задача с более высоким приоритетом. Каждая задача должна самостоятельно передать управление планировщику. Таким образом, высокоприоритетная задача будет ожидать, пока низкоприоритетная завершит свою работу и отдаст управление планировщику. Время реакции системы на внешнее событие становится неопределенным и зависит от того, как долго текущая задача будет выполняться до передачи управления. Кооперативная многозадачность применялась в семействе ОС Windows 3.x.
Вытесняющая и кооперативная концепции многозадачности объединяются вместе в гибридной многозадачности, когда вызов планировщика происходит каждый квант времени, но, в отличие от вытесняющей многозадачности, программист имеет возможность сделать это принудительно в теле задачи. Особенно полезен этот режим, когда необходимо сократить время реакции системы на прерывание.
Кроме самой FreeRTOS, существуют также ее коммерческие версии: SafeRTOS и OpenRTOS. SafeRTOS -- это ОСРВ, соответствующая уровню функциональной безопасности SIL3, имеющая такую же функциональную модель, что и FreeRTOS, и ориентированная на применение в системах с высокими требованиями к безопасности, например, в медицинской и аэрокосмической отраслях. OpenRTOS отличается от FreeRTOS лишь тем, что поставляется под коммерческой лицензией, с гарантией производителя и отменяет некоторые несущественные ограничения, присущие FreeRTOS. Далее необходимо рассмотреть структуру FreeRTOS.
Дистрибутив содержит непосредственно код ядра (в виде нескольких заголовочных файлов и файлов с исходным кодом) и демонстрационные проекты (по одному проекту на каждую среду разработки для каждого порта).
Несмотря на достаточно большое количество файлов в архиве (10 711 файла для версии 9.0.0), структура директорий на самом деле проста. Если планируется проектировать устройства на 2-3 архитектурах в 1-2 средах разработки, то бульшая часть файлов, относящихся к демонстрационным проектам и различным средам разработки, не понадобится.
Рассмотрим подробнее структуру операционной системы (рис. 1):
Рисунок 1. Структура ОСРВ FreeRTOS
Весь исходный код ядра находится в директории /Source. Его составляют следующие файлы:
tasks.c -- планировщик, реализация механизма задач
queue.c -- реализация очередей
list.c -- внутренние нужды планировщика, однако функции могут использоваться и в прикладных программах
croutine.c -- реализация сопрограмм
Заголовочные файлы, которые находятся в директории Source/Include:
tasks.h, queue.h, list.h, croutine.h -- заголовочные файлы соответственно для одноименных файлов с кодом
FreeRTOS.h -- содержит препроцессорные директивы для настройки компиляции
mpu_wrappers.h -- содержит переопределения функций программного интерфейса (API-функций) FreeRTOS для поддержки модуля защиты памяти (MPU)
portable.h -- платформенно-зависимые настройки
projdefs.h -- некоторые системные определения
semphr.h -- определяет API-функции для работы с семафорами, которые реализованы на основе очередей
StackMacros.h -- содержит макросы для контроля переполнения стека
Каждая аппаратная платформа требует небольшой части кода ядра, которая реализует взаимодействие FreeRTOS с этой плат- формой. Весь платформенно-зависимый код находится в поддиректории /Source/Portable, где он систематизирован по средам разработки (IAR, GCC и т.д.) и аппаратным платформам (например, AtmelSAM7S64, MSP430F449). К примеру, поддиректория /Source/Portable/ Keil/ ARM_CM7 содержит файлы port.c и portmacro.h, реализующие сохранение/восстановление контекста задачи, инициализацию таймера для создания временной базы, инициализацию стека каждой задачи и другие аппаратно-зависимые функции для микроконтроллеров семейства STM32 и компилятора Keil.
Отдельно следует выделить поддиректорию /Source/Portable/MemMang, в которой содержатся файлы heap_1.c, heap_2.c, heap_3.c, реализующие 3 различных механизма выделения памяти для нужд FreeRTOS.
В директории /Demo находятся готовые к компиляции и сборке демонстрационные проекты. Общая часть кода для всех демонстрационных проектов выделена в поддиректорию /Demo/Common.
Чтобы использовать FreeRTOS в своем проекте, необходимо включить в него файлы исходного кода ядра и сопутствующие заголовочные файлы. Нет необходимости модифицировать их или понимать их реализацию. Например, если планируется использовать порт для микроконтроллеров MSP430 и GCCкомпилятор, то для создания проекта «с нуля» понадобятся поддиректории /Source/Portable/GCC/MSP430F449 и /Source/Portable/MemMang. Все остальные поддиректории из директории /Source/Portable не нужны и могут быть удалены.
При создании приложения рекомендуется использовать makefile (или файл проекта среды разработки) от соответствующего демонстрационного проекта как отправную точку. Целесообразно исключить из сборки (build) файлы из директории /Demo, заменив их своими, а файлы из директории /Source оставить нетронутыми. Это гарантия того, что все исходные файлы ядра FreeRTOS будут включены в сборку и настройки компилятора останутся корректными.
Следует упомянуть также о заголовочном файле FreeRTOSConfig.h, который находится в каждом демонстрационном проекте. FreeRTOSConfig.h содержит определения (#define), позволяющие произвести настройку ядра FreeRTOS:
Набор системных функций
Использование сопрограмм
Количество приоритетов задач и сопрограмм
Размеры памяти
Тактовая частота микроконтроллера
Период работы планировщика (по умолчанию 1 мс)
Таким образом можно сделать вывод, что система FreeRTOS обладает достаточным набором для решения сложных задач. Также данная система не требует для полноценной работы высокопроизводительного микроконтроллера.
Список литературы
микроконтроллер операционный реальный время
1. Данченко Д.Г. Операционные системы реального времени / Д.Г. Данченко // Форум молодых ученых - материалы междунар. науч.-практ. сетев. издания. (Саратов, 10 января 2018 г.) / редкол.: А.А. Зарайский [и др.]. - Саратов: «Институт управления и социально-экономического развития», 2018 - ISSN 2500-4050.
2. FreeRTOS [Электронный ресурс]: официальный сайт системы реального времени FreeRTOS. -- Режим доступа: https://freertos.org/ (дата обращения: 05.01.2018).
3. Wikipedia [Электронный ресурс]: электронная свободная энциклопедия. -- Режим доступа: https://ru.wikipedia.org/ (дата обращения: 05.01.2018).
Размещено на Allbest.ru
...Подобные документы
Разработка прибора на основе микроконтроллера AtMega8A-16PU и микросхемы часов реального времени DS1307. Типовая конфигурация двухпроводной шины. Изготовление печатной платы автомата. Микросхемы часов реального времени. Проект блок-схемы программы.
курсовая работа [1,1 M], добавлен 16.04.2015Количественное исследование влияния на погрешность восстановления реального сигнала частоты его дискретизации и характеристик реального восстанавливающего фильтра. Цифровая передача по радиоканалу с заданной помехоустойчивостью системы "сигнал–шум".
курсовая работа [597,3 K], добавлен 28.12.2014Биллинговая система. Предбиллинг голосовых услуг. Передача данных в предбиллинге. IP-предбиллинг. Основные компоненты OSS/BSS. Выбор системы с накоплением или реального времени. ТелеБис. Оплата услуг. Вариант физической архитектуры системы.
курсовая работа [161,4 K], добавлен 24.12.2006Назначение систем видеоконференций. Передача мультимедийных данных через сеть Internet в режиме реального времени. Выбор структуры и форматов данных в системе видеоконференций. Выбор метода кодирования и декодирования, описание стандарта кодирования.
курсовая работа [863,8 K], добавлен 17.10.2012Семейство 16-разрядных микроконтроллеров Motorola 68HC12, их структура и функционирование. Модуль формирования ШИМ-сигналов. Средства отладки и программирования микроконтроллеров 68НС12. Особенности микроконтроллеров семейства MCS-196 фирмы INTEL.
курсовая работа [239,6 K], добавлен 04.01.2015Информационные характеристики и структурная схема системы передачи; расчет параметров аналого-цифрового преобразователя и выходного сигнала. Кодирование корректирующим кодом. Определение характеристик модема; сравнение помехоустойчивости систем связи.
курсовая работа [79,6 K], добавлен 28.05.2012Влияние постоянной времени на динамические свойства системы привода. Рациональное определение параметров фильтра. Схема скорректированной системы привода. Характеристики скорректированной системы привода до и после уменьшения постоянных времени фильтра.
лабораторная работа [445,9 K], добавлен 24.12.2009Изучение укрупненных характеристик системы, подлежащей автоматизации, как первый этап создания автоматизированной системы управления. Выявление глобальной цели исследуемой системы. Структура системы, таблица функций организации и рабочего процесса.
контрольная работа [470,2 K], добавлен 25.10.2010Признаки открытой магистрально-модульной системы. Основные группы открытых стандартов и протоколов ОММС. Структура и принципы работы шин. Электронные схемы шинного интерфейса. Конструктивное исполнение магистралей. Промышленные сети передачи данных.
презентация [1,8 M], добавлен 06.08.2013Схема управляющей системы, магистрально-модульный принцип построения. Требования к аппаратным средствам. Структура и принципы работы шин, параметры, определяющие их архитектуру. Конструктивное исполнение магистралей. Промышленные сети передачи данных.
методичка [1,8 M], добавлен 14.10.2013Структурная схема технических средств канала измерения системы. Расчет статической характеристики измерительного канала, погрешностей дискретизации, числа каналов коммутатора, числа разрядов аналого-цифрового преобразователя. Опрос коммутатором каналов.
контрольная работа [247,6 K], добавлен 16.01.2014Рассмотрение структуры и принципов работы таймеров/счетчиков (общего назначения, сторожевого, типов А, В, С, D, Е) микроконтроллеров и аналого-цифрового преобразователя семейства AVR с целью разработки обучающего компьютерного электронного пособия.
курсовая работа [1,0 M], добавлен 06.03.2010Разработка структурной схемы системы и ее описание. Матричная клавиатура AK1604A-WWB. Жидкокристаллический индикатор, часы реального времени. Интерфейс процессора с памятью. Разработка программы для микроконтроллера. Резидентный загрузчик НЕХ202.
курсовая работа [1,0 M], добавлен 01.02.2014Исследование переходной функции, амплитудно-фазовых и логарифмических частотных характеристик апериодического, реального дифференцирующего и колебательного звеньев. Анализ точности функционирования статической системы. Формулировка критерия Найквиста.
методичка [415,7 K], добавлен 04.06.2014Построение базовой модели предметной области. Программное обеспечение видеонаблюдения. Сравнение характеристик существующих информационно-компьютерных систем. Определение требований к архитектуре системы и графическому интерфейсу. Выбор языка реализации.
дипломная работа [3,8 M], добавлен 01.04.2013Классификация, структура, архитектура и модульная организация микроконтроллеров. Средства разработки программного обеспечения AVR-контроллеров. Директивы транслятора ассемблера, рабочая частота и циклы. Исследование арифметических и логических команд.
методичка [3,0 M], добавлен 19.09.2019Расчет количественных характеристик надежности невосстанавливаемых элементов, построение графика их зависимости от времени. Определение времени безотказной работы и восстановления системы после отказа. Расчет надежности триггера при заданных параметрах.
контрольная работа [438,5 K], добавлен 10.02.2013Выполнение синтеза и анализа следящей системы автоматического управления с помощью ЛАЧХ и ЛФЧХ. Определение типов звеньев передаточных функций системы и устойчивости граничных параметров. Расчет статистических и логарифмических характеристик системы.
курсовая работа [1,9 M], добавлен 01.12.2010Введение в теорию частотных фильтров. Определение постоянных времени, передаточных функций системы. Нахождение частотных характеристик. Расчёт коэффициентов усиления корректирующих звеньев. Определение устойчивости САР. Построение активных характеристик.
курсовая работа [159,8 K], добавлен 26.12.2014Разработка микропроцессорной системы управления технологическим объектом. Выбор и расчет элементов системы, разработка ее программного обеспечения. Составление структурных, функциональных и принципиальных схем микроконтроллеров семейства MCS-51.
курсовая работа [579,0 K], добавлен 20.09.2012