Форум программистов, компьютерный форум, киберфорум
Наши страницы

Микроконтроллеры

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 87, средняя оценка - 4.60
raxp
10177 / 6563 / 479
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
#1

Литература по RTOS - Микроконтроллер

25.04.2012, 12:01. Просмотров 13356. Ответов 6

Преимущества RTOS (ОСРВ):
1- многозадачность;
2- временная база для измерения интервалов времени;
3- обмен данными между задачами через очередь и синхронизацию.

Недостатки ОСРВ:
1- увеличение потребной памяти программ для реализации ядра;
2- большее количество памяти для хранения стека каждой задачи, семафоров, очередей, мьютексов и других объектов ядра системы;
3- задержки при переключении между задачами на сохранение контекста.
Полезные ссылки

• стартовая http://ru.wikipedia.org/wiki/Операционная_система_реального_времени
• FreeRTOS http://www.freertos.org (портирована на 27 архитектур + си-исходники)
• Цикл статей. FreeRTOS - операционная система для микроконтроллеров
http://robot-develop.org/archives/tag/freertos
• FreeRTOS: практическое применение http://microsin.ru/content/view/1304/44/
Возможность использования Windows NT в качестве ОС реального времени
Подключить функции RTX + оригинал статьи

В последнее время приобретают популярность расширения реального времени для Windows NT. Это обусловлено, с одной стороны, расширением областей применения компьютерного управления, с другой стороны - сравнительно малой известностью и высокой стоимостью специализированных операционных систем реального времени. Интерфейс Win32 является стандартным и хорошо знакомым большому числу программистов. Под NT существует огромное число готовых приложений (в том числе коммуникационных), а также популярные средства разработки. К сожалению, Windows NT "в чистом виде" нельзя отнести к операционным системам реального времени. Обсуждению причин этого посвящены статьи Martin Timmerman и Jean-Christophe Monfret в Real-Time Magazine Q21997. Вот некоторые из них: недостаточное количество real-time приоритетов, отсутствие наследования приоритетов, как средства борьбы с инверсией приоритетов, неподходящая для RTOS система обработки прерываний.

В Windows NT доступ к прерываниям осуществляется из драйвера ядра, а сами прерывания обрабатываются в два этапа: сначала вызывается очень короткая Interrupt Service Routine (ISR), осуществляющая критическую обработку, основная обработка прерывания происходит в Deferred Procedure Call (DPC). Все DPC выполняются с одинаковым уровнем приоритета в порядке поступления (FIFO). Таким образом, время окончания обработки вашей DPC оказывается зависимым непредсказуемым образом от наличия в системе других драйверов и их активности. Для систем с жестким детерминизмом необходимо точно знать максимальное время от момента возникновения прерывания до входа в процедуру обработки и гарантировать его непревышение.

RTX - real-time extension для Windows NT от компании VenturCom

Одним из возможных решений - является использование совместно с Windows NT подсистемы реального времени, исполняющейся на том же процессоре (если процессор один) или на выделенном процессоре(-ах) (если их несколько). Этот подход использован фирмой VenturCom в продукте RTX (Real Time Extension). Сущность подхода заключается в использовании модифицированного HAL (Hardware Abstraction Level). Изменять kernel Microsoft не разрешает, а исходный код HAL предоставляет своим партнерам, одним из которых является VenturCom. После установки RTX стандартная NT Workstation или Server превращается в операционную систему реального времени с жестким детерминизмом (hard real-time). Сама NT об этом, правда, не подозревает. Ни ядро, ни исполняющая подсистема NT не были изменены. Подсистема реального времени видна из Windows NT, как еще один драйвер устройства. Схема функционирования RTX в составе Windows NT представлена на рисунке:
Литература по RTOS

В системе появляется планировщик задач реального времени. Новый HAL по прерыванию от часов реального времени передает управление этому планировщику, который следит за очередью задач реального времени, находящихся в системе и выделяет им время в соответствии с приоритетом. В RTX существует 128 фиксированных приоритетов для задач реального времени. Если в очереди таких задач нет, то управление передается стандартному планировщику NT. При этом времена исполнения кодов модифицированного и оригинального HAL совпадают, т.е. присутствие RTX не сказывается на производительности Windows в отсутствие real-time процессов. Однако, если real-time процессы будут занимать все процессорное время, то Windows NT не получит управления и окажется подвешенной. В принципе, если данная ситуация не входит в планы разработчика, ее можно предупредить, установив в опциях настройки RTX "сторожевой" таймер, срабатывающий, если один поток занимает CPU больше определенного времени.

Все программы, исполнявшиеся на машине до установки RTX, будут по-прежнему на ней исполняться, но, к сожалению, не в real-time режиме. Такие программы нужно писать и компилировать самому с помощью поставляемых VenturCom библиотек, содержащих функции Real-Time API (RTAPI).

Создание приложений реального времени с помощью RTAPI

Одним из преимуществ RTX, является возможность использования стандартных компиляторов для создания real-time программ и стандартного софта (commercial off the shelf, COTS), взаимодействующего с ними и работающего на той же машине. Действительно, для создания real-time программ Вы можете использовать Visual C++ 4.2 или 5.0. Кроме того, при создании Win32- приложения можно использовать любой компилятор, понимающий вызовы функций Win32 API (например C++ Builder). Один и тот же код можно откомпилировать как Win32 и как RTSS приложение с расширениями .exe и .rtss соответственно. Exe-вариант программы является приложением "мягкого" реального времени.

Функции, входящие в RTAPI на данный момент, можно разделить на 4 группы. К первой относятся функции, чья семантика и/или поведение отличается от функций Win32 API. В названии всех функций этой группы присутствует префикс Rt (например RtAttachInterruptVector) Во вторую входят функции, чья семантика и функциональность совпадают с функциями из Win32 API, но они работают в RTSS подсистеме. В третью группу входят функции runtime C библиотеки. К последней (но не по важности) группе относятся функции т.н. Windows NT Driver IPC API, позволяющие rtss и Win32 потокам взаимодействовать с обычными драйверами, работающими в режиме ядра.

Программы, скомпилированные как rtss, могут содержать только функции, входящие в RTAPI, На программы,скомпилированные как exe, такое ограничение не распространяется.

Разработку любого RTSS приложения удобно начинать с exe-варианта. Это позволяет использовать отладочные средства Visual Studio (или другого используемого компилятора). Например, если Вы пишете rtss-драйвер, обслуживающий прерывания, то скомпилировав его как Win32 программу, можно установить точку останова в процедуре обработки прерывания (в RTX обработка прерываний не разделяется на ISR и DPC, а выполняется одним потоком (см. ниже)) и сделать пошаговый прогон всей процедуры. Программы, скомпилированные как rtss, при необходимости отлаживаются с помощью WinDBG (на двух компьютерах) или SoftIce (на одном компьютере).

Обычно (хотя и не обязательно) приложение состоит минимум из двух частей - real-time процесса, исполняющегося в RTSS подсистеме и исполняющего критическую по времени работу и exe-процесса, исполняющегося в Win32, взаимодействующего с rtss-частью с помощью средств межпроцессного взаимодействия. Exe-часть может взаимодействовать с сервисами NT, другими программами, пользователем.
+ чтиво
RTX Beginner search for example in Delphi

==========================

Литература

• Programming Embedded Systems: With C And Gnu Development Tools
• Patterns for Time-Triggered Embedded Systems
• Зыль С. Операционная система реального времени QNX: от теории к практике
• Зыль С. QNX Momentics. Основы применения
Кертен Р. Введение в QNX/Neutrino 2
Книга Роба Кёртена позволит читателям получить фундаментальное понимание ключевых особенностей QNX/ Neutrino. Она написана в непринужденной манере, в легком для понимания стиле и послужит источником необходимых начальных знаний для проектирования надежных систем реального времени — от встраиваемых управляющих приложений до распределенных сетевых вычислительных систем. Операционные системы семейства QNX поражают своей эффективностью и элегантностью реализации, что, по-видимому, играет не последнюю роль в популярности данного продукта. Ведь если в основе проекта лежит стройная, изящная архитектура, то и сам проект имеет шансы получить гармоничное воплощение. QNX нередко применяется в инженерных задачах, где к числу главных требований относится простота идеи и ее реализации. Это могут быть и телекоммуникации, и управление производством, и драйверы различного назначения.

Литература по RTOS

О.Цилюрик, Е.Горошко. QNX/UNIX. Анатомия параллелизма
Книга адресована программистам, работающим в самых разнообразных ОС UNIX. Авторы предлагают шире взглянуть на возможности параллельной организации вычислительного процесса в традиционном программировании. Особый акцент делается на потоках (threads), а именно на тех возможностях и сложностях, которые были привнесены в технику параллельных вычислений этой относительно новой парадигмой программирования. На примерах реальных кодов показываются приемы и преимущества параллельной организации вычислительного процесса.

Некоторые из результатов испытаний тестовых примеров будут большим сюрпризом даже для самых бывалых программистов. Тем не менее излагаемые техники вполне доступны и начинающим программистам: для изучения материала требуется базовое знание языка программирования С/О++ и некоторое понимание "устройства" современных многозадачных ОС UNIX.

Литература по RTOS

Д.Алексеев, Д.Васильев. Практика работы с QNX
Эта книга родилась как непреднамеренный продукт деятельности русскоязычного сообщества пользователей QNX, объединившегося вокруг некоммерческого Internet проекта "QNX Realtime Platform: Русский Портал", созданного в сентябре 2000 года энтузиастами Дмитрием Алексеевым (Санкт-Петербург) и Дмитрием Васильевым (Самара, сейчас Санкт-Петербург). Но сегодня, на форуме этого портала ежедневно присутствуют несколько сот профессионалов из России, Украины, Белоруссии, Канады, Ирландии, Дании, Финляндии, Южной Кореи, Польши, Болгарии...

Литература по RTOS

ARTX Kernel. ОСРВ для ARM (на русском)
Литература по RTOS

Мовила В.Н. mRTOS. Кооперативная операционная система для МК AVR
Журнал «ПРОграммист» 09 (декабрь) 2010
http://raxp.radioliga.com/cnt/s.php?p=pro9.pdf

Литература по RTOS
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2012, 12:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Литература по RTOS (Микроконтроллер):

Выбор RTOS - Микроконтроллер
Есть ли универсальное решение для выбора RTOS для микроконтроллеров. Например столько памяти - такая RTOS. Для определённых...

RTOS производства РФ - Микроконтроллер
Доброго дня. В сети появилась инфа о создании ОС реального времени некоей питерской компанией Астрософт. Назвали ОСРВ МАКС. Заявлена...

Время и RTOS - Микроконтроллер
Доброго времени суток! Имеется МК STM32T4 пользующийся услугами FriiRTOS. Есть возможность получить время сети, синхронизированное по...

структуры, указатели в RTOS - Микроконтроллер
Здравствуйте. Ваяю себе мини-бортовой комп для Chevrolet Aveo. Девайс построен на Atmega16, в комплекте есть пара DS18B20, PCF2129AT,...

вопрос по Di Halt Rtos. - Микроконтроллер
проц.: atmega8a os: DiHalt Rtos проблема: незапускается. инициализация проходит и начинается тупить в while(1) не доходя до...

Творческий вопрос! Прерывания в RTOS - Микроконтроллер
Есть процессор с операционкой RTOS, но не стандартной, а специально написанной производителем под этот камень. Есть таблица прерываний,...

6
raxp
10177 / 6563 / 479
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
19.05.2013, 20:49  [ТС] #2
scmRTOS. Компактная ОСРВ для микроконтроллеров

что нового в scmRTOS 4.0...

- вместо byte, word, dword используются типы uint8_t, uint16_t, uint32_t из stdint.h;
- изменено соглашение об именовании функций и переменных;
- структура каталогов архитектура/компилятор/линейка_микроконтроллеров;
- добавлена возможность перезапустить процесс;

- добавлена поддержка профилирования и отладки програм:
(определение остатка свободного места на стеках процессов, измерение времени работы процессов, возможность узнать адрес объекта синхронизации, ожидаемого процессом)

- добавлен пример 4-Debug для демонстрации части этих возможностей;
- добавлен класс TKernelAgent — механизм расширений ОС (собственно, профилирование и сделано как пример такого расширения);
- добавлен порт для STM8/IAR и примеры для STM8S;
- в порт CortexM3/GCC добавлены примеры 1-EventFlag и 4-Debug для микроконтроллеров LPC17XX;
- в портах AVR/GCC и AVR/IAR для микроконтроллеров megaAVR добавлена поддержка кристаллов с памятью программ более 128 килобайт (ATmega256x);
- порт Fujitsu MB91 и ARM7/IAR на данный момент не поддерживается.

Разработчик: Гарри Журов
Cкачать: https://sourceforge.net/projects/scmrtos
0
Вложения
Тип файла: pdf scmRTOS_v4.ru.pdf (895.9 Кб, 254 просмотров)
Kve
11 / 11 / 1
Регистрация: 21.05.2013
Сообщений: 70
04.10.2013, 23:39 #3
Еще есть такая операционная система, но только по ней литературы мало
uOS
Вся инфа здесь: https://code.google.com/p/uos-embedded/
Там же мануал на русском.
1
Aveal
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 1
08.10.2013, 12:40 #4
По FreeRTOS - пара практических примеров, может кому пригодится - http://microtechnics.ru/?s=freertos&...B8%D1%81%D0%BA
0
shindax
6 / 6 / 1
Регистрация: 09.10.2014
Сообщений: 25
25.04.2015, 08:32 #5
OSA - кооперативная многозадачная операционная система реального времени (ОСРВ) для микроконтроллеров фирмы Microchip серий PIC10, PIC12, PIC16, PIC18, PIC24 и dsPIC, AVR 8-bit фирмы Atmel, а также микроконтроллеров STM8 фирмы STMicroelectronics.

http://pic24.ru/doku.php/osa/ref/intro
0
shurikspk
399 / 220 / 34
Регистрация: 10.02.2013
Сообщений: 781
27.04.2015, 13:52 #7
также очень интересные статьи по freeRtos http://www.kit-e.ru/articles/micro/2011_2_96.php
0
27.04.2015, 13:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2015, 13:52
Привет! Вот еще темы с ответами:

Какая лучше RTOS для MSP430 - Микроконтроллер
Добрового времени суток всем. Решил тут немного побаловаться с RTOS, опыта в этом деле у меня нет. Присматриваюсь к родной операционке...

[решено]Останов выполнения задачи в RTOS - Микроконтроллер
доброго времени суток! сейчас я на отладчной плате гоняю мегу32 с RTOS взятой из статьи (точнее из примера) ...

F429+RTOS+HAL+USB Host - Микроконтроллер
Всем доброго дня. Вопрос знатокам ртос. Уже долгое время не могу понять нескольких вещей. Значит у меня в проекте сидит эмвин, оформлена...

Обработка клавиш. Таймер для нужд RTOS. - Микроконтроллер
В обычных программах всё делаю в прерывании - обработка дребезга/нажатия/отпускания клавиш. Т.к. прерывания завязаны на таймер и его точное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.