Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.4. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
3.5. Системы на кристалле
81
сокращения тактовой частоты. Для оптимизации по скорости следует ис­пользовать MicroBlaze с 5-уровневым конвейером, что позволяет работать при тактовой частоте до 235 МГц. Кроме того, ключевые команды процес­сора, которые редко используются, но при этом их дорого воспроизводить «в железе», могут быть выборочно добавлены или удалены. Подобные настройки предоставляют разработчику возможность строго определять грань между аппаратной и программной частью в проекте.
Без блока управления памятью MicroBlaze способна функционировать ОС с упрощенной защитой и виртуальной памятью, например μClinux или FreeRTOS. С блоком управления памятью возможна работа операционных систем, требующих аппаратной поддержки страничной организации па­мяти и защиты (ядро Linux). При этом следует иметь в виду, что произво­дительность MicroBlaze значительно ниже, чем у таких аппаратных микро­процессорных ядер, встроенных в ПЛИС, как PowerPC-405 или Virtex-4.
Nios II [48]
Это 32-разрядная микропроцессорная архитектура для встраиваемых приложений (soft-микропроцессор), разработанная специально для ПЛИС фирмы Altera. Nios II является развитием архитектуры Nios и находит при­менение в различных встраиваемых приложениях, начиная от цифровой об­работки сигналов до управляющих систем (см. рис. 26).
Рис. 26. Архитектура Nios II
Nios II можно сравнить с MicroBlaze, конкурирующей с микропроцес­сорной архитектурой для ПЛИС фирмы Xilinx. В отличие от Microblaze,
3. Классификация ОС РВ
82
Nios II возможно лицензировать для реализации в СБИС при посредниче­стве Synopsys Designware.
PicoBlaze [49]
Серия свободно распространяемых soft-процессорных ядер компании Xilinx для ПЛИС. PicoBlaze основана на архитектуре 8-битного RISC-процессора; скорость работы на ПЛИС семейства Virtex 4 может до- стигать 100 MIPS. С целью обращения к периферии процессор использует 8-битную шину, посредством которой появляется возможность раздельно
читать и записывать до 256 портов.
PicoBlaze распространяется в виде исходного кода на языках VHDL и Verilog для свободного использования на продуктах фирмы Xilinx. Особен­ности архитектуры гарантируют наилучшие характеристики для ПЛИС се­мейства Spartan и Virtex. Фирмой Xilinx предлагается к использованию спе­циальное программное обеспечения для трансляции исходного кода на языке Ассемблера. Синтаксис исходного языка нарочито упрощен в угоду простоты и скорости. Также имеется специальное инструментальное про­граммное обеспечение, созданное сторонними организациями (Mediatronix и др.). Альтернативно существует PacoBlaze – модифицированное ядро PicoBlaze, распространяемое под лицензией BSD.
При вставке PicoBlaze в проект на VHDL должно быть использовано соответствующее имя компонента KCPSM. Ядро KCPSM3 поддерживает:
− обращение к 18-битным микрокомандам;
− выполнение микрокоманды за один цикл, два такта;
− 10 битный программный счетчик микрокоманд PC;
− одноадресные и двухадресные байтовые операции;
− 16 встроенных регистров;
− АЛУ арифметических и логических операций, однобитовый сдвиг;
− два флага операций: CARRY и ZERRO;
− встроенное ОЗУ strachpad на 64 байта в пространстве 256 байт;
− обращение к 256 независимым портам на чтение и запись;
− встроенный стек вызовов на 31 ячейку (CALL/RETURN stack);
− одноуровневое прерывание.
Ядро KCPSM6 для PicoBlaze поддерживает:
− обращение к 18-битным микрокомандам;
− выполнение микрокоманды за один цикл, два такта;
3.5. Системы на кристалле
83
− 12 битный программный счетчик микрокоманд PC;
− дополнительная возможность ветвления программы по содержи-
мому регистра;
− дополнительная возможность возврата из подпрограмм и одновре-
менная идентификация точки возврата;
− одноадресные и двухадресные байтовые операции, расширенная по
отношению к KCPSM3 система команд;
− два, программно переключаемых, банка встроенных регистров по
16-ть регистров каждый;
− АЛУ арифметических и логических операций, однобитовый сдвиг;
− – два флага операций: CARRY и ZERRO;
− встроенное ОЗУ strachpad в пространстве 256 байт конфигурируе-
мого размера;
− обращение к 256 независимым портам на чтение и запись;
− дополнительное пространство 256 портов для специальной кон-
стантной записи;
− встроенный стек вызовов на 30 ячеек (CALL/RETURN stack);
− одноуровневое настраиваемое прерывание.
Кроме того, ядро PicoBlaze:
− выполняет команды преимущественно за два такта (в KCPSM6 не-
которые команды за 4 такта), при этом тактовая частота может доходить до нескольких сотен МГц;
− быстро реагирует на прерывания (в худшем случае – за 5 тактов);
− в версии KCPSM-3 оптимизировано для архитектуры Xilinx
Spartan-3: занимает всего 96 ячеек (slices) и 1 блок RAM;
− в версии KCPSM-6 оптимизировано для архитектуры Xilinx
Spartan-6, Virtex-6, и FPGA седьмой серии: занимает всего 26 ячеек.
Программы для PicoBlaze необходимо писать на ассемблере. Про­граммы, написанные для KCPSM3, требуют перетрансляции, когда необхо­димо их исполнение на KCPSM6, но и в этом случае по ряду общих команд нет полной совместимости. Для отладки имеется программный симулятор.
С помощью специальных программных средств программа для PicoBlaze может быть заменена непосредственно в файле прошивки ПЛИС (с расширением bit). С помощью специальных программных средств можно
3. Классификация ОС РВ
84
загружать программу для PicoBlaze непосредственно в ПЛИС через ин­терфейс JTAG.
3.6. ОС РВ для микроконтроллеров
Ядро реального времени позволяет легко разрабатывать и расширять
приложения реального времени; можно добавлять функции без больших из­менений в программном коде. Использование ОС РВ упрощает процесс раз­работки, разбивая код приложения на отдельные задачи. С использованием приоритетной ОСРВ все критичные к времени события обрабатываются так быстро и так эффективно, как это возможно для выбранного микроконтрол­лера. ОСРВ позволяет лучше использовать ресурсы центрального процес­сора посредством сервисов типа семафоров, почтовых ящиков, очередей, задержек, тайм-аутов и т. д. Основным недостатком ОСРВ являются повы­шенные требования к производительности микроконтроллера.
В настоящее время существует более 80 различных операционных си-
стем реального времени, поддерживающих 8-, 16- и 32-разрядные микро­процессоры. Некоторые из этих пакетов – законченные ОС и включают не только ядро реального времени, но также менеджер ввода-вывода, системы управления выводом информации (дисплей), файловую систему, работу с сетями, библиотеки языков интерфейса, отладчики и межплатформенные компиляторы.
Azure [50]
Данная ОС РВ предназначается для устройств с ограниченными ресур-
сами Интернета вещей и пограничных устройств на базе микроконтролле­ров (MCU). Она предоставляет среду безопасности, сертифицированную по общему критерию EAL4 +, включая полную безопасность уровня IP посред­ством IPsec и безопасность уровня сокетов посредством TLS и DTLS. ОС РВ Azure включает следующие компоненты (см. рис. 27):
− ОС РВ Azure ThreadX предназначается для глубоко встраиваемых
приложений;
− ОС РВ Azure FileX – это высокопроизводительная файловая си-
стема, совместимая с FAT;
− ОС РВ Azure GUIX – это пакет для графического пользователь-
ского интерфейса профессионального качества;
3.6. ОС РВ для микроконтроллеров
85
− ОС РВ Azure NetX – это высокопроизводительная реализация стан-
дартов протокола TCP/IP;
− ОС РВ Azure NetX Duo – это расширенный сетевой стек TCP/IP
промышленного класса, предназначенный для глубоко внедренных прило­жений, работающих в реальном времени;
− ОС РВ Azure USBX – это высокопроизводительный USB-узел,
устройство и встроенный стек оперативных средств.
Рис. 27. Компоненты ОС РВ Azure
uRTOS [51]
Является событийной ОС, обладающей свойством вытесняющей мно­гозадачности. Кроме того, легко настраивается, масштабируется и обла­дает адаптивным потреблением памяти микроконтроллера. Реализована на языке Ассемблер. Предназначается для работы на всех микроконтрол­лерах AVR фирмы Atmel с объёмом оперативной памяти от 128 байт (см. рис. 28).
Рис. 28. Микроконтроллер на основе ОС РВ uRTOS
3. Классификация ОС РВ
86
uRtos состоит из ядра и пользовательских процессов. Под ядром пони-
мается набор программных средств, которые обеспечивают функциониро­вание процессов и выполняют обработку прерывания микроконтроллера. Основным компонентом ядра, отвечающим за работу с процессами, явля­ется диспетчер (планировщик). Диспетчер отвечает за запуск и выполнение процессов, а также выполняет их перепланировку в соответствии с алгорит­мом работы системы.
uRTOS является ОС мягкого реального времени, так как внутри её дис­петчера любые прерывания запрещены. В результате происходит растяги­вание интервала выполнения задачи реального времени во время работы системы при больших нагрузках.
uRTOS осуществляет поддержку до 31 пользовательского процесса. Каждый процесс представляет собой обособленную программу, выполняю­щую определённый круг задач и имеющую свой стек для сохранения дан­ных и адресов возврата из процедур. Процессы встраиваются в систему на этапе компиляции. При этом и динамическое взаимодействие с процессами не поддерживается.
Salvo [52]
Первые версии ОС РВ Salvo были написаны на ассемблере и предна­значались для микроконтроллера Microchip PIC17C756 PICmicro в частной внутренней системе сбора данных. Эта версия поддерживала большое число базовых функций, позднее использовавшихся в последующих вер­сиях. Дальнейшие версии данной ОС РВ, реализованные на языке програм­мирования C, обладали расширенным функционалом. Salvo стала более мощной и гибкой, а также полностью переносимой. Она предназначалась для всего ряда микроконтроллеров Microchip PICmicro. Salvo версии 3 под­держивала новые микропроцессоры, такие как 8-битные 8051 и 16-битные – MSP430. Salvo версии 4 поддерживала 32-битные встроенные процессоры. Был достигнут максимум конфигурируемости и эффективности, что предо­ставляет пользователю полную гибкость в режиме реального времени.
Salvo является чрезвычайно гибко конфигурируемой системой для удовлетворения требований самого широкого круга пользователей встраи­ваемых микроконтроллеров. Она также обеспечивает пользователя всеми необходимыми заголовочными файлами, инструментами пользователя, предопределенными константами, типами данных, функциями и т.д.
3.6. ОС РВ для микроконтроллеров
87
jacOS [53]
Является кооперативной многозадачной ОС РВ. Порядок выполнения
задач определяется их приоритетами и событиями, обслуживаемыми систе­мой. В последней версии реализованы семафоры, сообщения, таймауты, маскируемые события. В библиотечной версии количество задач и событий искусственно не ограничено. Приоритеты задач статические.
jacOS версии 1.06.0 поддерживает 12-и, 14-и и 16-битные контроллеры
PIC, а также AVR, MSP430 и х51. В качестве ограничения для первых двух серий выбрана память данных. Для 18-й серии дело обстоит иначе, так как в библиотечной версии для каждого процессора была выбрана только одна «модель» работы с памятью. В табл. 2 указаны подробности обо всех огра­ничениях для каждой серии контроллеров.
Таблица 2
Подробности обо всех ограничениях
для каждой серии контроллеров
Контроллер
Модель
Ограничения
Примечания
PIC 12 бит H–T
SMALL
Строковые константы и таблица переходов вме­сте должны поместиться в 256 слов ROM.
Каждая точка переключения контекста требует два слова в таблице переходов
PIC 14 бит H–T
COMPACT
Все системные перемен­ные + TCB + ECB должны находиться в bank() и bank1 .
Каждая задача требует от 4 до 8 байт для блока управления (TCB). Для каждого события так же требуется блок управ­ления (ECB) в 2–4 байта. Библиотеки с поддержкой бан­ков 2–3 можно получить по за­просу.
PIC 18 H–T
COMPACT
1. Все системные пере-
менные, TCB и ECB имеют квалификатор near, следовательно, должны уместиться в 128 байт RAM (96 байт для некоторых контрол­леров).
2. Данная модель рабо- тает с памятью до 64 Kb (32 килослова)
TCB занимает от 4 до 8 байт. ECB – от 3 до 4.
Максимальное количество за­дач для этой модели состав­ляет 24.
PIC 18 IAR
NORMAL
1. Все системные пере-
менные, TCB и ECB объявлены с ключевым словом _bank1 (256 б.)
Code model = Static overlay. TCB занимает от 5 до 9 байт. ECB – от 4 до 5.
3. Классификация ОС РВ
88
Окончание табл. 2
Контрол-
лер
Модель
Ограничения
Примечания
AVR GCC WINAVR
NORMAL
TCB занимает от 5 до 9 байт. ECB – от 4 до 6.
AVR IAR
COM­PACT
NORMAL
1. Системные пере-
менные имеют квали­фикатор _tiny.
2. Опция Cross Call при оптимизации должна быть отклю­чена.
3. Опция Cross Call при оптимизации должна быть отключена.
Максимальное количество задач для этой модели составляет 30. Поддерживаются модели компи­лятора tiny и small в конфигура­циях от v0, v1, v3. TCB занимает от 4 до 8 байт. ECB – от 2 до 5. Поддерживается модель small в конфигурации v3. TCB занимает от 5 до 12 байт. ECB – от 3 до 6.
MSP430 IAR
NORMAL
TCB занимает от 6 до 12 байт. ECB – от 4 до 6.
X51 Keil
NORMAL
Программная память до 64 Kb
TCB занимает от 4 до 8 байт. ECB – от 3 до 5.
KeilRTX [54]
Keil RTOS – многозадачная открытая ОС РВ, интегрированная в среду Keil (см. рис. 29). Функционирование происходит только на архитектуре ARM. Данная ОС РВ Поддерживает многозадачность и сервисы для
мьютексов, семафоров, событий, почтовых ящиков. Обеспечивает цикличе­скую, упреждающую и неупреждающую (совместную) политику планиро­вания. Поддержка отладки RTX интегрирована в инструменты MDK-ARM. Кроме того, реализует API CMSIS-RTOS, стандартизированный ARM. По­скольку исходный код предоставляется вместе с инструментами MDK­ARM, он используется исключительно при разработке устройств на базе процессоров ARM Cortex-Mx.
К основным преимуществам следует отнести:
1. портируемость в пределах архитектуры ARM;
2. поддержка большого количества готовых библиотек;
3. высокоскоростная работа в реальном времени с малой задержкой
прерывания;
4. высокая надежность.
Основными недостатками являются:
1. невозможность использования не на архитектурах ARM;
2. низкая скорость;
3. сложна в использовании;
4. отсутствие графического интерфейса.
3.7. Обеспечение отказоустойчивости систем реального времени
89
Рис. 29. Архитектура ядра
Производительность системы Keil RTX зависит от множества факто­ров, включая архитектуру процессора, объем памяти, выделенный для си­стемы, и характеристики исполняемых задач. В целом, система Keil RTX является быстрой и эффективной, что позволяет использовать ее на микро­контроллерах с низким энергопотреблением.
Требования к системной памяти Keil RTX зависят от конкретной реа­лизации системы, а также от требуемого числа задач и объема обрабатыва­емой информации. В среднем для работы Keil RTX потребуется от 2 до 8 Кб ОЗУ и от 6 до 12 Кб ПЗУ. Для эффективного использования системы необ­ходимо выбирать микроконтроллеры с соответствующим объемом памяти.
Keil RTX оптимизирована для 32-разрядной архитектуры ARM и пол­ностью отвечает всем этим требованиям. RTX имеет следующие характе­ристики: малое время переключения <5 мкс, 255 уровней прерываний, до 256 выполняемых одновременно задач, неограниченное число таймеров пользователя.
Для удобства программиста в среде Keil модули объединяют в группы по назначению. На рис. 30 показана структура проекта с указанием всех модулей.
3.7. Обеспечение отказоустойчивости систем реального времени
С целью обеспечения надежного функционирования системы и ожида-
емого выполнения задач в условиях случайных и систематических сбоев должен быть применен один из следующих двух подходов:
3. Классификация ОС РВ
90
1. восстановление / возобновление задачи после сбоя системы;
2. предотвращение отказа системы.
Рис. 30. Структура модулей проекта
Первый подход состоит во внедрении дополнительных механизмов
прямого и возвратного восстановления задачи. Прямое восстановление осу­ществляется без восстановления предыдущего состояния, т.е. задача запус­кается заново с переходом к следующему состоянию.
При возвратном восстановлении производится возврат процесса к его предыдущему состоянию. Подобный процесс невозможен без надежного хранения текущего состояния процессов.
С целью восстановления состояния может быть применён один из сле­дующих двух методов:
1. промежуточная фиксация;
2. ведение журнала.
Следует отметить, что использование данных методов будет затруд­нено для распределенной системы, так как процесс хранения состояний не­скольких параллельно взаимодействующих объектов достаточно сложен.
Для устранения подобных сложностей созданы системы, которые устойчивы к распространенным типам сбоев и отказов. Такие системы либо
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]