BSP и встраивание Методология встраивания ОС QNX Трофимов Александр SWD Software Ltd.

Презентация:



Advertisements
Похожие презентации
IDE QNX – практическая работа Трофимов Александр SWD Software.
Advertisements

Аппаратная экосистема QNX: поддерживаемые процессорные платы и стартовые комплекты SWD TimeMaster Эдуард Белохвостиков SWD Software Ltd. Санкт-Петербург.
Модульное лицензирование Александр Варварик SWD Real-Time Systems Конференция QNX Россия сентября, Санкт-Петербург.
Настройка системы печати в ОС QNX 6 Cергей Зыль SWD Software.
Устройство и принцип работы операционной системы Windows XP.
Системы реального времени Лекция 3: ядро ОСРВ. ОСРВ: ядро + приложения (вспомним… ) ОСРВ можно условно разделить на ядро системы и приложения более высокого.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Архитектура операционных систем Семестр 2, Лекция 1.
Основные операционные системы: Персональные компьютеры IBM-совместимые – MS-DOS, Windows (3.1, 9, Me, XP); Персональные компьютеры Apple – Mac OS Рабочие.
неотъемлемая часть программного обеспечения компьютера, управляющая всеми его аппаратными компонентами.
Лабораторный практикум по курсу Принципы построения современных ОС Линёв А.В. – ассистент, кафедра ИИСиГИ ВМК ННГУ Свистунов А.Н. – ассистент, кафедра.
Безопасность систем на базе сертифицированной ОСРВ QNX КПДА Александр Трофимов.
Архитектура операционной системы. Ядро и вспомогательные модули операционной системы При функциональной декомпозиции ОС модули разделяются на две группы:
Раздел 3. Программное обеспечение ЭВМ Урок 1. Операционная система Windows. Состав и загрузка.
АО «Системы реального времени – Украина» 49038, г Днепропетровск, пр. Карла Маркса 101 т. (056) ф. (0562)
ПЕРСОНАЛЬНОЕ СКЗИ ШИПКА ОКБ САПР Москва, 2007.
Kaspersky Anti-Hacker 1.8 Обзор продукта Глумов Юрий, Менеджер по развитию продуктов.
1. Теоретические основы операционных систем (планирование заданий и использования процессора, обеспечение программ средствами коммуникации и синхронизации,
Архитектура современных персональных компьютеров Подготовил студент группы 11ИнфБ122 Зайцев Д.
Многообразие операционных систем. Основные характеристики операционных систем.
Транксрипт:

BSP и встраивание Методология встраивания ОС QNX Трофимов Александр SWD Software Ltd.

QNX - ОС жесткого реального времени Параметр \ CPU Pentium II 233 МГц Pentium II 350 МГц PowerPC MTX МГц Время реакции на прерывание, мкс Время постановки потока на выполнение, мкс Время отработки вызова ядра (sched_yield), мкс Переключение контекста между потоками одного процесса, мкс

QNX – ОС жесткого реального времени

QNX – микроядерная ОС Администратор процессов Администратор файловой системы TCP/IP Администратор сети WWW- сервер Стек протоколов Масштабируемость!

QNX и встраивание Гибко масштабируется Сохраняет ключевые свойства даже в минимальных конфигурациях QNX – многоплатформенная ОС QNX – ОС жесткого реального времени Встраиваемость!

Требования к промышленному оборудованию Особые требования к габаритам и энергопотреблению Особые требования к вибро-, термо-, и удароустойчивости Особые требования к конструктивному исполнению

Особенности промышленного оборудования Базируются на различных процессорных платформах (PowerPC, ARM, x86 и т.д.) Обладают ограниченными ресурсами Обычно оснащены flash- носителями данных (DiskOnChip, Compact Flash, Onboard flash chip)

Пакеты поддержки плат (BSP) Модуль первоначального загрузчика IPL Startup модуль Модуль поддержки файловой системы на флеш-носителе PCI сервер Пакет поддержки плат – продукт, содержащий все необходимые компоненты для установки и работы QNX на определенной процессорной плате

Структура BSP Заголовочные файлы и скомпилированные библиотеки Исходные тексты библиотек Исходные тексты модулей для различных архитектур и плат (рабочий каталог BSP)

Рабочий каталог BSP bsp working dir/src/hardware iplstartupflash

IPL Минимальная инициализация оборудования; Загрузка образа ОС из носителя данных в ОЗУ; Определение адреса ОЗУ, по которому размещается загруженный образ ОС; Копирование startup-модуля в OЗУ; Передача управления startup-модулю; IPL размещается на векторе сброса процессора, при передаче ему управления производит следующие действия:

Структура IPL Ассемблерный код - init_myboard.s main() { - main.c image_download_hw() image_scan() image_setup() image_start() } Большая часть кода IPL – это вызовы библиотечных функций IPL library

Рабочий каталог BSP bsp working dir/src/hardware iplstartupflash

Startup-модуль Доинициализация оборудования; Сбор информации о системе и заполнение специальной структуры данных, так называемой system page; Инициализация callout-ов микроядра; Загрузка следующей программы из образа и передача ей управления; Startup-модуль – это самая первая программа в загружаемом образе Neutrino. Она получает управление от IPL и выполняет следующие действия:

Структура Startup-модуля Global variables main() { Call add_callout_array() Argument parsing (Call handle_common_option()) Call init_raminfo() Remove ram used by modules in the image if (virtual) Call init_mmu() to initialize the MMU Call init_intrinfo() Call init_qtime() Call init_cacheattr() Call init_cpuinfo() Set hardware machine name Call init_system_private() Call print_syspage() to print debugging output } Как и в IPL большая часть кода – вызовы библиотечных функций startup-library для опроса конфигурации оборудования, инициализации system page, загрузки в ОЗУ следующего процесса из образа ОС, переключения процессора в защищенный режим

Рабочий каталог BSP bsp working dir/src/hardware iplstartupflash

Драйвер встроенной файловой системы Как менеджер ресурсов драйвер должен обрабатывать все стандартные сообщения Содержит основную логику flash filesystem. Доступ к оборудованию осуществляется при помощи нижележащих компонентов. Находится в библиотеке libfs-flash.a Инициализация и адресация flash устройств Функции записи и стирания для конкретного flash устройства (MTD) Определение размера flash массива

Структура драйвера файловой системы int main(int argc, char **argv) { int error; static f3s_service_t service[]= { …………………………….. }; static f3s_flash_t flash[]= { …………………………….. } /* init f3s */ F3s_init(argc, argv, flash); /* start f3s */ error=f3s_start(service, flash); return error; } Для ряда flash чипов данный код реализован в MTD (libmtd-flash.a) библиотеке из состава BSP Данный код реализуется исходя из особенностей доступа и адресации flash устройства

Библиотека MTD В библиотеке libmtd-flash.a реализованы функции MTD уровня для некоторых flash чипов различных производителей: AMD Intel Sharp Fujitsu Псевдоустройства (например, оперативная память) В общей сложности более 120 устройств

QNX Momentics PE Пакеты поддержки плат В состав комплекта разработчика QNX Momentics PE входит более 17 BSP для более чем 25 процессорных плат; Список доступных BSP постоянно расширяется;

Fastwel CPU686E - Стартовый комплект Комплект разработчика QNX Momentics PE/SE Процессорная плата с предустановленной средой исполнения QNX, разъемы, кабели Литература и инструкции на русском языке, документация, учебные видеоролики Стартовый комплект = готовый набор инструментов для разработки ПО Бесплатно!

BSP и встраивание Практические приемы Трофимов Александр SWD Software Ltd.

Пример 1 – IBM PPC 405GP Walnut IBM PPC 405GP Walnut В состав QNX Momentics входит BSP для IBM PPC 405GP Walnut

Пример 1 – IBM PPC 405GP Walnut IPL модуль с исходными кодами; Startup модуль с исходными кодами; PCI сервер с исходными кодами; Сценарии загрузочных образов системы; Исчерпывающая документация; BSP для IBM PPC 405GP (Walnut) входит в состав QNX Momentics и состоит из следующих компонентов:

Пример 1 – IBM PPC 405GP Walnut Загрузка по протоколу bootp; Загрузка при помощи IPL; Установив QNX вместе с BSP для Walnut на инструментальной машине, можно выбирать различные варианты дальнейшей работы с целевой системой: Из компонентов BSP собирается загрузочный образ целевой системы. На инструментальной системе настраиваются bootp и tftp сервер для передачи образа целевой системе. Загрузка по протоколу bootp; Загрузка при помощи IPL;

Пример 1 – IBM PPC 405GP Walnut Целевая система Инструментальная система Соединение Ethernet Нуль-модемное соединение COM портов Через последовательное соединение конфигурируется ROM Monitor целевой системы; Передается образ по сети;

Пример 1 – IBM PPC 405GP Walnut

Загрузка по протоколу bootp; Загрузка при помощи IPL; Установив QNX вместе с BSP для Walnut на инструментальной машине, можно выбирать различные варианты дальнейшей работы с целевой системой: Загрузка по протоколу bootp; Загрузка при помощи IPL;

Пример 1 – IBM PPC 405GP Walnut В массив прошивается только код IPL, сконфигурированный таким образом, чтобы загружать образ по последовательному соединению по протоколу sendnto; В массив прошивается как IPL, так и загрузочный образ системы. Размер массива накладывает ограничение на размер загружаемого образа в 504K; Walnut оснащен 29f040 совместимым flash массивом емкостью 512K. Изначально в нем прошит код ROM Monitorа. При помощи СППЗУ программатора в массив можно прошить код для загрузки QNX несколькими способами:

Пример 1 – IBM PPC 405GP Walnut Интегрированная среда разработки – QNX IDE позволяет строить загрузочные образы и передавать их на целевую систему

Пример 2 – Fastwel CPU686E Fastwel CPU686E

Пример 2 – Fastwel CPU686E Специалистами SWD Software Ltd. был разработан пакет поддержки Fastwel CPU686E для QNX Neutrino; SE пользователям пакет предоставляется в виде исполняемых модулей, пользователям PE пакет предоставляется вместе с исходными текстами;

Пример 2 – Fastwel CPU686E Fastwel CPU686E построена на платформе x86; Fastwel CPU686E оснащена BIOS; Fastwel CPU686E оснащена 8 Мб NAND Flash массивом; При разработке пакета поддержки Fastwel CPU686E для QNX Neutrino были проанализированы следующие характеристики целевой системы:

Пример 2 – Fastwel CPU686E За основу пакета можно взять наиболее «близкий» к Fastwel BSP для платы Elan SC400; В качестве PCI сервера можно использовать стандартный pci-bios; Startup модуль из BSP для Elan SC400 полностью подходит для Fastwel CPU686E; Доступ к NAND Flash массиву осуществляется через порты ввода-вывода, а не через окно памяти; MTD функции для NAND Flash массива не реализованы в MTD библиотеке BSP; Результаты анализа

Пример 2 – Fastwel CPU686E Что нужно сделать Добавить в MTD библиотеку функции MTD для работы с NAND Flash; Поскольку доступ к Flash осуществляется через порты ввода-вывода, необходимо переписать функции flash services; В IPL реализовать способ считывания образа QNX Neutrino в оперативную память с Flash массива;

Пример 3 – Некая гипотетическая плата В общем случае программную и аппаратную часть системы создают разные группы разработчиков; При выборе аппаратной части необходимо обратить особое внимание на программно- аппаратную совместимость;

Пример 3 – Некая гипотетическая плата Выбор платформы Алгоритм выбора платы Выбирается готовая или разрабатывается готоваяразрабатывается При выборе составляющих особое внимание обратить на их программно-аппаратную совместимость Внимательно ознакомиться с составляющими компонентами платы по вопросам поддержки их в QNX

Пример 3 – Некая гипотетическая плата Мастер-класс Игоря Мазанова, посвященный вопросам «программно- аппаратной совместимости в ОС QNX», состоится 20 сентября 2003 в 13:30 в зале «CARAMEL»

Пример 3 – Некая гипотетическая плата Когда плата уже выбрана Проверить наличие готового BSP для данной платы; Если нет, сравнить выбранную плату с теми, для которых существует готовый BSP, и найти среди них наиболее «близкую»; Взять BSP для «близкой» платы за основу проекта; Проанализировать различия между данной и «близкой» платой; Доработка модулей «близкого» BSP, требующих модификации;

Пример 3 – Некая гипотетическая плата Анализ различий Алгоритм загрузки; Совместимость PCI контроллера; Наличие onboard flash накопителя; Поддержка данного flash накопителя библиотекой MTD; Метод доступа к onboard flash; Оборудование, которое необходимо инициализировать на различных этапах загрузки;

SWD Software Ltd. Официальный дистрибьютор QNX , Санкт-Петербург, пр. Юрия Гагарина 23 тел.: (812) тел.: (812) факс: (812) web: Спасибо!