BSP и встраивание

Содержание

Слайд 2

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

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

Слайд 3

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

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

Слайд 4

QNX – микроядерная ОС

Масштабируемость!

QNX – микроядерная ОС Масштабируемость!

Слайд 5

QNX и встраивание

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

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

Встраиваемость!

Слайд 6

Требования к промышленному оборудованию

Особые требования к габаритам и энергопотреблению

Особые требования к вибро-,

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

Особые требования к конструктивному исполнению

Слайд 7

Особенности промышленного оборудования

Базируются на различных процессорных платформах (PowerPC, ARM, x86 и т.д.)
Обладают

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

Слайд 8

Пакеты поддержки плат (BSP)

BSP

Модуль первоначального загрузчика IPL
Startup модуль
Модуль поддержки файловой системы

Пакеты поддержки плат (BSP) BSP Модуль первоначального загрузчика IPL Startup модуль Модуль
на флеш-носителе
PCI сервер

Пакет поддержки плат – продукт, содержащий все необходимые компоненты для установки и работы QNX на определенной процессорной плате

Слайд 9

Структура BSP

Заголовочные файлы и скомпилированные библиотеки

Исходные тексты библиотек

Исходные тексты модулей для различных

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

Слайд 10

Рабочий каталог BSP

Рабочий каталог BSP

Слайд 11

IPL
Минимальная инициализация оборудования;
Загрузка образа ОС из носителя данных в ОЗУ;
Определение адреса

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

IPL размещается на векторе сброса процессора, при передаче ему управления производит следующие действия:

Слайд 12

Структура IPL

Большая часть кода IPL – это вызовы библиотечных функций IPL library

Структура IPL Большая часть кода IPL – это вызовы библиотечных функций IPL library

Слайд 13

Рабочий каталог BSP

Рабочий каталог BSP

Слайд 14

Startup-модуль

“Доинициализация” оборудования;
Сбор информации о системе и заполнение специальной структуры данных, так называемой

Startup-модуль “Доинициализация” оборудования; Сбор информации о системе и заполнение специальной структуры данных,
system page;
Инициализация callout-ов микроядра;
Загрузка следующей программы из образа и передача ей управления;

Startup-модуль – это самая первая программа в загружаемом образе Neutrino. Она получает управление от IPL и выполняет следующие действия:

Слайд 15

Структура Startup-модуля

Как и в IPL большая часть кода – вызовы библиотечных функций

Структура Startup-модуля Как и в IPL большая часть кода – вызовы библиотечных
startup-library для опроса конфигурации оборудования, инициализации system page, загрузки в ОЗУ следующего процесса из образа ОС, переключения процессора в защищенный режим

Слайд 16

Рабочий каталог BSP

Рабочий каталог BSP

Слайд 17

Драйвер встроенной файловой системы

Как менеджер ресурсов драйвер должен обрабатывать все стандартные сообщения

Содержит

Драйвер встроенной файловой системы Как менеджер ресурсов драйвер должен обрабатывать все стандартные
основную логику flash filesystem. Доступ к оборудованию осуществляется при помощи нижележащих компонентов. Находится в библиотеке libfs-flash.a

Инициализация и адресация flash устройств

Функции записи и стирания для конкретного flash устройства (MTD)

Определение размера flash массива

Слайд 18

Структура драйвера файловой системы

Для ряда flash чипов данный код реализован в MTD

Структура драйвера файловой системы Для ряда flash чипов данный код реализован в

(libmtd-flash.a) библиотеке из состава BSP

Данный код реализуется исходя из особенностей доступа и адресации flash устройства

Слайд 19

Библиотека MTD

В библиотеке libmtd-flash.a реализованы функции MTD уровня для некоторых flash чипов

Библиотека MTD В библиотеке libmtd-flash.a реализованы функции MTD уровня для некоторых flash
различных производителей:

AMD
Intel
Sharp
Fujitsu
Псевдоустройства (например, оперативная память)

В общей сложности более 120 устройств

Слайд 20

QNX Momentics 6.2.1 PE

Пакеты поддержки плат
В состав комплекта разработчика QNX Momentics 6.2.1

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

Слайд 21

Fastwel CPU686E - Стартовый комплект

Стартовый комплект = готовый набор инструментов для разработки

Fastwel CPU686E - Стартовый комплект Стартовый комплект = готовый набор инструментов для разработки ПО Бесплатно! Бесплатно!
ПО

Бесплатно!

Бесплатно!

Слайд 22

BSP и встраивание Практические приемы

Трофимов Александр
SWD Software Ltd.

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

Слайд 23

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

IBM PPC 405GP
Walnut

В состав QNX Momentics

Пример №1 – IBM PPC 405GP Walnut IBM PPC 405GP Walnut В
6.2.1 входит BSP для IBM PPC 405GP Walnut

Слайд 24

Пример №1 – IBM PPC 405GP Walnut
IPL модуль с исходными кодами;
Startup модуль

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

BSP для IBM PPC 405GP (Walnut) входит в состав QNX Momentics 6.2.1 и состоит из следующих компонентов:

Слайд 25

Пример №1 – IBM PPC 405GP Walnut
Загрузка по протоколу bootp;
Загрузка при помощи

Пример №1 – IBM PPC 405GP Walnut Загрузка по протоколу bootp; Загрузка
IPL;

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

Слайд 26

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

Целевая система

Инструментальная система

Соединение

Ethernet

Нуль-модемное соединение COM портов

Через

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

Слайд 27

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

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

Слайд 28

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

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

Слайд 29

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

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

Слайд 30

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

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

Слайд 31

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

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

Слайд 32

Пример №1 – IBM PPC 405GP Walnut
Загрузка по протоколу bootp;
Загрузка при помощи

Пример №1 – IBM PPC 405GP Walnut Загрузка по протоколу bootp; Загрузка
IPL;

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

Слайд 33

Пример №1 – IBM PPC 405GP Walnut
В массив прошивается только код IPL,

Пример №1 – IBM PPC 405GP Walnut В массив прошивается только код
сконфигурированный таким образом, чтобы загружать образ по последовательному соединению по протоколу sendnto;
В массив прошивается как IPL, так и загрузочный образ системы. Размер массива накладывает ограничение на размер загружаемого образа в 504K;

Walnut оснащен 29f040 совместимым flash массивом емкостью 512K. Изначально в нем прошит код ROM Monitor’а. При помощи СППЗУ программатора в массив можно прошить код для загрузки QNX несколькими способами:

Слайд 34

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

Интегрированная среда разработки – QNX IDE

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

Слайд 35

Пример №2 – Fastwel CPU686E

Fastwel CPU686E

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

Слайд 36

Пример №2 – Fastwel CPU686E

Специалистами SWD Software Ltd. был разработан пакет поддержки

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

Слайд 37

Пример №2 – Fastwel CPU686E

Fastwel CPU686E построена на платформе x86;
Fastwel CPU686E оснащена

Пример №2 – Fastwel CPU686E Fastwel CPU686E построена на платформе x86; Fastwel
BIOS;
Fastwel CPU686E оснащена 8 Мб NAND Flash массивом;

При разработке пакета поддержки Fastwel CPU686E для QNX Neutrino были проанализированы следующие характеристики целевой системы:

Слайд 38

Пример №2 – Fastwel CPU686E

За основу пакета можно взять наиболее «близкий» к

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

Результаты анализа

Слайд 39

Пример №2 – Fastwel CPU686E

Что нужно сделать

Добавить в MTD библиотеку функции MTD

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

Слайд 40

Пример №3 – Некая гипотетическая плата

В общем случае программную и аппаратную часть

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

Слайд 41

Пример №3 – Некая гипотетическая плата

Выбор платформы

Алгоритм выбора платы

Выбирается готовая
или разрабатывается

готовая

разрабатывается

При

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

Внимательно ознакомиться
с составляющими
компонентами платы по
вопросам поддержки их
в QNX

Слайд 42

Пример №3 – Некая гипотетическая плата

Мастер-класс Игоря Мазанова, посвященный вопросам «программно-аппаратной совместимости

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

Слайд 43

Пример №3 – Некая гипотетическая плата

Когда плата уже выбрана

Проверить наличие готового BSP

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

Слайд 44

Пример №3 – Некая гипотетическая плата

Анализ различий

Алгоритм загрузки;
Совместимость PCI контроллера;
Наличие onboard flash

Пример №3 – Некая гипотетическая плата Анализ различий Алгоритм загрузки; Совместимость PCI
накопителя;
Поддержка данного flash накопителя библиотекой MTD;
Метод доступа к onboard flash;
Оборудование, которое необходимо инициализировать на различных этапах загрузки;
Имя файла: BSP-и-встраивание.pptx
Количество просмотров: 139
Количество скачиваний: 0