Jump to content

Операционные системы микроконтроллеров

(Перенаправлено с MicroC/OS-II )
МикроС/ОС (мкС/ОС)
Разработчик Микрориум, Инк.,
Кремниевые лаборатории
Написано в АНСИ С
Рабочее состояние Текущий
Исходная модель С открытым исходным кодом по состоянию на 2020 г.
Первоначальный выпуск 1991 год ; 33 года назад ( 1991 )
Последний выпуск ОС-III/2016 ; 8 лет назад ( 2016 )
Репозиторий github /Вестон-встроенный /uC-OS3
Маркетинговая цель Встроенные устройства
Доступно в Английский
Платформы ARM Cortex-M3 , -M4F , ARM7TDMI ; Атмел АВР ; eSi-RISC и многие другие.
ядра Тип реального времени Микроядро
По умолчанию
пользовательский интерфейс
микроС/ графический интерфейс
Лицензия Apache по состоянию на 2020 год; бывшее коммерческое использование бесплатного программного обеспечения для образования
Официальный сайт встроенный в Уэстон /микрий /обзор
Микрориум ОС
Разработчик Кремниевые лаборатории
Написано в АНСИ С
Рабочее состояние Текущий
Исходная модель с открытым исходным кодом
Первоначальный выпуск 2020 ; 4 года назад ( 2020 )
Последний выпуск Часть платформы Gecko 4.2.0.0, [1] часть Gecko SDK 4.2.0.0 [2] / 14 декабря 2022 г .; 19 месяцев назад ( 14.12.2022 )
Репозиторий github /SiliconLabs / геккон _СДК /дерево /gsdk _4 .2 /платформа /микрий _ты
Маркетинговая цель Встроенные устройства
Доступно в Английский
Платформы исключительно кремний Silicon Labs
ядра Тип реального времени Микроядро
Лицензия Апач
Официальный сайт www .силабы /разработчики /micrium-os
Цезий ОСРВ
Разработчик Уэстон Встроенные решения
Написано в АНСИ С
Рабочее состояние Текущий
Исходная модель Коммерческий
Первоначальный выпуск 23 июня 2020 г .; 4 года назад ( 23.06.2020 ) (разветвление от uC/OS-III V3.08.00) [3]
Последний выпуск Чт/OS3 3.09.02 [3] / 23 июня 2023 г .; 13 месяцев назад ( 23.06.2023 ) [3]
Маркетинговая цель Встроенные устройства
Доступно в Английский
Платформы 50+ неясно, существует ли совпадение 1 к 1 с микроC/OS
ядра Тип реального времени Микроядро
Лицензия Коммерческий
Официальный сайт встроенный в Уэстон /продукты /цезий

Операционные системы микроконтроллера ( MicroC/OS , стилизованные под μC/OS или Micrium OS ) — операционная система реального времени (RTOS), разработанная Жаном Ж. Лаброссом в 1991 году. Это вытесняющее ​​реального времени ядро на основе приоритетов. для микропроцессоров , написанных в основном на языке C. программирования Он предназначен для использования во встроенных системах .

MicroC/OS позволяет определить на языке C несколько функций, каждая из которых может выполняться как независимый поток или задача. Каждая задача выполняется с разным приоритетом и выполняется так, как будто ей принадлежит центральный процессор (ЦП). Задачи с более низким приоритетом могут быть вытеснены задачами с более высоким приоритетом в любое время. Задачи с более высоким приоритетом используют службы операционной системы (ОС) (например, задержку или событие), чтобы разрешить выполнение задач с более низким приоритетом. Службы ОС предназначены для управления задачами и памятью, связи между задачами и синхронизации. [4]

Ядро MicroC/OS первоначально было опубликовано в статье, состоящей из трех частей, в журнале Embedded Systems Programming и в книге «μC/OS The Real-Time Kernel» Лабросса. [5] Сначала он намеревался просто описать внутренности портативной ОС, которую он разработал для собственного использования, но позже разработал ее как коммерческий продукт в своей собственной компании Micrium, Inc. в версиях II и III.

В 2016 году Micrium, Inc. была приобретена Silicon Laboratories. [6] и впоследствии он был выпущен с открытым исходным кодом под лицензией Apache .

Silicon Labs продолжает поддерживать продукт с открытым исходным кодом под названием Micrium OS для использования на своих собственных процессорах. [7] а группа бывших сотрудников Micrium, Inc. (включая Лабросса) предоставляет консультации и поддержку как для микроC/OS, так и для Cesium RTOS, проприетарного ответвления, созданного сразу после выпуска с открытым исходным кодом. [8]

микроС/ОС-II

[ редактировать ]

Основанная на исходном коде, написанном для микроС/ОС и представленная в качестве коммерческого продукта в 1998 году, микроС/ОС-II представляет собой портативное , масштабируемое ​​реального времени , поддерживающее ПЗУ, вытесняющее, детерминированное, многозадачное ядро для микропроцессоров и цифровых устройств. сигнальные процессоры (DSP). Он справляется с 64 задачами. Его размер можно масштабировать (от 5 до 24 Кбайт), чтобы он содержал только те функции, которые необходимы для конкретного использования.

Большая часть микроСи/ОС-II написана на легко переносимом языке ANSI C , а код, специфичный для целевого микропроцессора, написан на языке ассемблера . Использование последнего сведено к минимуму, чтобы облегчить портирование на другие процессоры.

Использование во встроенных системах

[ редактировать ]

μC/OS-II была разработана для встраиваемых систем. Если у производителя есть подходящая цепочка инструментов (т. е. компилятор C, ассемблер и компоновщик-локатор) [ нужны разъяснения ] ), микроC/OS-II может быть встроена как часть продукта.

μC/OS-II используется во многих встроенных системах, в том числе:

Состояния задачи

[ редактировать ]

μC/OS-II — многозадачная операционная система. Каждая задача представляет собой бесконечный цикл и может находиться в любом из следующих пяти состояний (дополнительно см. рисунок ниже).

Кроме того, он может управлять до 64 задачами. Однако рекомендуется зарезервировать восемь из этих задач для микроС/ОС-II, оставив приложению до 56 задач. [9]

Ядро — это имя , присвоенное программе, которая выполняет большинство задач по обслуживанию операционной системы. Загрузчик передает управление ядру, которое инициализирует различные устройства до известного состояния и подготавливает компьютер к основным операциям. [10] Ядро отвечает за управление задачами (т. е. за управление временем ЦП) и связь между задачами. [11] Основной услугой, предоставляемой ядром, является переключение контекста .

Планировщик . — это часть ядра, отвечающая за определение того, какая задача будет запущена следующей [12] Большинство ядер реального времени основаны на приоритетах. В ядре с приоритетом управление ЦП всегда передается задаче с наивысшим приоритетом, готовой к запуску. Существует два типа ядер на основе приоритетов: невытесняющие и вытесняющие . Невытесняющие ядра требуют, чтобы каждая задача делала что-то, чтобы явно отказаться от контроля над ЦП. [12] Вытесняющее ядро ​​используется, когда более важна отзывчивость системы. Таким образом, микроC/OS-II и большинство коммерческих ядер реального времени являются приоритетными. [13] Задача с наивысшим приоритетом, готовая к выполнению, всегда получает контроль над ЦП.

Назначение задач

[ редактировать ]

Задачи с самой высокой скоростью выполнения получают наивысший приоритет с использованием монотонного планирования . [14] Этот алгоритм планирования используется в операционных системах реального времени (RTOS) с классом планирования со статическим приоритетом . [15]

Управление задачами

[ редактировать ]

В вычислительной технике задача является единицей выполнения . В некоторых операционных системах задача является синонимом процесса , в других — потока . В компьютерных системах пакетной обработки задача — это единица выполнения внутри задания . Системный пользователь микроСи/ОС-II имеет возможность управлять задачами, используя следующие возможности:

  • Функция задачи
  • Создание задачи
  • Стек задач и проверка стека
  • Удаление задачи
  • Изменение приоритета задачи
  • Приостановить и возобновить задачу
  • Получить информацию о задаче [16]

Управление памятью

[ редактировать ]

Чтобы избежать фрагментации , микроСи/ОС-II позволяет приложениям получать блоки памяти фиксированного размера из раздела, состоящего из непрерывной области памяти. Все блоки памяти имеют одинаковый размер, а раздел содержит целое число блоков. Выделение и освобождение этих блоков памяти осуществляется за постоянное время и представляет собой детерминированную систему . [17]

Управление временем

[ редактировать ]

Для микроC/OS-II требуется периодический источник времени для отслеживания временных задержек и тайм-аутов. Тик должен происходить от 10 до 1000 раз в секунду или герц . Чем выше тактовая частота, тем больше накладных расходов на систему накладывает микроC/OS-II. Частота тактов зависит от желаемого разрешения тактов приложения. Источники тиков можно получить, выделив аппаратный таймер или создав прерывание из сигнала линии электропередачи переменного тока (AC) (50 или 60 Гц). Этот периодический источник времени называется тактом часов. [18]

После такта определения задачи могут быть:

  • Отсрочка задачи
  • Возобновить отложенную задачу

Общение между задачами

[ редактировать ]

Межзадачное или межпроцессное взаимодействие в микроСи/ОС-II происходит через: семафоры , почтовый ящик сообщений, очереди сообщений, задачи и процедуры обслуживания прерываний (ISR). Они могут взаимодействовать друг с другом, когда задача или ISR сигнализирует о задаче через объект ядра, называемый блоком управления событиями (ECB). Сигнал считается событием.

микроС/ОС-III

[ редактировать ]

μC/OS-III — это аббревиатура от версии 3 операционных систем для микроконтроллеров, представленная в 2009 году и добавляющая функциональность к ОСРВ μC/OS-II.

µC/OS-III предлагает все возможности и функции µC/OS-II. Самая большая разница — количество поддерживаемых задач. μC/OS-II допускает только 1 задачу на каждом из 255 уровней приоритета, максимум 255 задач. μC/OS-III допускает любое количество прикладных задач, уровней приоритета и задач на уровень, ограниченное только доступом процессора к памяти. [19] [20]

μC/OS-II и μC/OS-III в настоящее время поддерживаются компанией Micrium, Inc., дочерней компанией Silicon Labs, и могут лицензироваться для каждого продукта или для каждой линейки продуктов.

Использование во встроенных системах

[ редактировать ]

Использование такое же, как и для микроС/ОС-II.

Состояния задачи

[ редактировать ]

μC/OS-III — многозадачная операционная система. Каждая задача представляет собой бесконечный цикл и может находиться в любом из пяти состояний (бездействующее, готовое, выполняемое, прерванное или ожидающее). Приоритеты задач могут варьироваться от 0 (самый высокий приоритет) до максимум 255 (самый низкий приоритет).

Круговое планирование

[ редактировать ]

Когда две или более задач имеют одинаковый приоритет, ядро ​​позволяет одной задаче выполняться в течение заранее определенного периода времени, называемого тактом , а затем выбирает другую задачу. Этот процесс называется циклическим планированием или разделением времени. Ядро передает управление следующей задаче в очереди, если:

  • Текущая задача не имеет работы в течение своего интервала времени, или
  • Текущая задача завершается до окончания своего интервала времени, или
  • Временной интервал заканчивается.

Функция ядра для микроС/ОС-III такая же, как и для микроС/ОС-II.

Управление задачами

[ редактировать ]

Управление задачами также работает так же, как и в микроСи/ОС-II. Однако микроC/OS-III поддерживает многозадачность и позволяет приложению выполнять любое количество задач. Максимальное количество задач ограничено только объемом компьютерной памяти (как пространства кода, так и данных), доступной процессору.

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

Управление памятью

[ редактировать ]

Управление памятью осуществляется так же, как и в микроС/ОС-II.

Управление временем

[ редактировать ]

µC/OS-III предлагает те же функции управления временем, что и µC/OS-II. Он также предоставляет приложениям услуги, позволяющие задачам приостанавливать свое выполнение на определяемые пользователем задержки. Задержки задаются количеством тактов часов, часами, минутами, секундами и миллисекундами .

Общение между задачами

[ редактировать ]

Иногда задача или ISR должны передавать информацию другой задаче, поскольку небезопасно, чтобы две задачи одновременно обращались к одним и тем же конкретным данным или аппаратному ресурсу. Эту проблему можно решить посредством передачи информации, называемой межзадачной связью. Информация может передаваться между задачами двумя способами: через глобальные данные или путем отправки сообщений.

При использовании глобальных переменных каждая задача или ISR должны гарантировать эксклюзивный доступ к переменным. Если задействован ISR, единственный способ обеспечить монопольный доступ к общим переменным — отключить прерывания . Если две задачи совместно используют данные, каждая может получить монопольный доступ к переменным, отключив прерывания, заблокировав планировщик, используя семафор или, что предпочтительнее, используя семафор взаимного исключения . Сообщения могут отправляться либо в промежуточный объект, называемый очередью сообщений , либо непосредственно в задачу, поскольку в микроСи/ОС-III каждая задача имеет свою встроенную очередь сообщений. Используйте внешнюю очередь сообщений, если несколько задач должны ожидать сообщений. Отправьте сообщение непосредственно задаче, если только одна задача будет обрабатывать полученные данные. Пока задача ожидает прибытия сообщения, она не использует время процессора.

Порт включает в себя три аспекта: процессор, ОС и код конкретной платы (BSP). μC/OS-II и μC/OS-III имеют порты для большинства популярных процессоров и плат на рынке и подходят для использования во встроенных системах, критически важных для безопасности, таких как авиация, медицинские системы и ядерные установки. Порт микроС/ОС-III предполагает запись или изменение содержимого трех файлов, специфичных для ядра: OS_CPU.H, OS_CPU_A.ASM, и OS_CPU_C.C. Наконец, создайте или измените пакет поддержки платы (BSP) для используемой оценочной или целевой платы. Порт микроС/ОС-III аналогичен порту микроС/ОС-II. Портов значительно больше, чем указано здесь, и порты подлежат постоянному развитию. И μC/OS-II, и μC/OS-III поддерживаются популярными библиотеками SSL/TLS , такими как wolfSSL , которые обеспечивают безопасность всех соединений.

Изменение лицензии

[ редактировать ]

После приобретения Silicon Labs в феврале 2020 года Micrium перешла на модель лицензирования с открытым исходным кодом. Сюда входят uC/OS III, все предыдущие версии, все компоненты: USB, файловая система , графический интерфейс пользователя, TCP/IP и т. д.

Документация и поддержка

[ редактировать ]

Поддержка доступна через типичный форум поддержки и несколько подробных книг, некоторые из которых адаптированы к конкретной архитектуре микроконтроллера и платформе разработки, в виде бесплатных PDF-файлов или в виде недорогой покупки в твердом переплете. Платная поддержка доступна от Weston Embedded Solutions.

  1. ^ «Платформа Gecko 4.2.0.0 GA» (PDF) . 14 декабря 2022 г. Проверено 4 января 2023 г.
  2. ^ «Релизы gecko_sdk на github.com» . Гитхаб . Проверено 4 января 2023 г.
  3. ^ Перейти обратно: а б с «Примечания к выпуску Cs/OS3» . Встраиваемые решения Weston.
  4. ^ «NiosII GCC с MicroC/OS» . Школа электротехники и вычислительной техники . Корнелльский университет. Июнь 2006 года . Проверено 25 апреля 2017 г.
  5. ^ Лаброс, Жан Ж. (15 июня 2002 г.). μC/OS Ядро реального времени (2-е изд.). ЦРК Пресс. ISBN  978-1578201037 .
  6. ^ «Что такое Микриум?» . Встраиваемые решения Weston . Проверено 4 января 2023 г.
  7. ^ «Программное обеспечение и документация Micrium» . Проверено 4 января 2023 г.
  8. ^ «Почему цезиевая ОСРВ?» . Встраиваемые решения Weston . Проверено 4 января 2023 г.
  9. ^ Лабросс, Жан Дж. MicroC/OS-II: Ядро реального времени (2-е изд.). п. 77.
  10. ^ Викиверситет:Операционные системы/Модели ядра#Монолитное ядро
  11. ^ Лабросс, Жан Дж. MicroC/OS-II: Ядро реального времени (2-е изд.). п. 39.
  12. ^ Перейти обратно: а б Лабросс, Жан Дж. MicroC/OS-II: Ядро реального времени (2-е изд.). п. 40.
  13. ^ Лабросс, Жан Дж. MicroC/OS-II: Ядро реального времени (2-е изд.). п. 42.
  14. ^ Лю, Чунг Лан; Лэйланд, Джеймс В. (1973). «Алгоритмы планирования мультипрограммирования в среде жесткого реального времени». Журнал АКМ . 20 (1): 46–61. CiteSeerX   10.1.1.36.8216 . дои : 10.1145/321738.321743 . S2CID   59896693 .
  15. ^ Бовет, Даниэль. «Понимание ядра Linux» . Архивировано из оригинала 21 сентября 2014 г.
  16. ^ Лабросс, Жан Дж. MicroC/OS-II: Ядро реального времени (2-е изд.). стр. 45–49.
  17. ^ Лабросс, Жан Дж. MicroC/OS-II: Ядро реального времени (2-е изд.). стр. 273–285.
  18. ^ Лабросс, Жан Дж. MicroC/OS-II: Ядро реального времени (2-е изд.). стр. 145–152.
  19. ^ «Сравнение функций μC/OS-II и μC/OS-III» . Микриум .
  20. ^ «Обзор μC/OS-III» . Микриум .

Источники

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5bbc6f3cf88099602627deab05936406__1723057020
URL1:https://arc.ask3.ru/arc/aa/5b/06/5bbc6f3cf88099602627deab05936406.html
Заголовок, (Title) документа по адресу, URL1:
Micro-Controller Operating Systems - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)