Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Основные принципы системной разработки > Запуск системы, быстрая активация устройств > Построение встраиваемых систем



Построение встраиваемых систем

Рассматриваются подходы к проектированию пакетов поддержки устройств (ППМ, BSP) и вопросы разработки загрузочных образов

Руководство «Построение встраиваемых систем» предназначено для разработчиков встраиваемых систем, функционирующих под управлением ЗОСРВ «Нейтрино».

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

Статьи руководства
API библиотек libipl и libstartup

Статьи руководства

Следующая таблица содержит ссылки на статьи с общими сведениями:

Статья Описание
Общая информация о создании полнофункциональных встраиваемых систем
Общие принципы работы с пакетами поддержки плат
Создание загрузочного образа операционной системы
Разработка кода, подготавливающего систему к передаче управления загрузочному образу
Разработка инициализирующего кода в составе загрузочного образа
Решение проблем с оборудованием
Практики проектирования файлов построения загрузочного образа

API библиотек libipl и libstartup

При разработке BSP следует внимательно изучить API модулей startup и IPL.

Библиотека libipl позволяет создавать нестандартные IPL для встраиваемых систем. Ниже перечислены её компоненты:

Статья Описание
Включение внутрисхемной кеш-память
Скачивание образа через указанный последовательный порт
Поиск корректного образа системы в памяти
Версия image_scan() для расширения BIOS
Подготовка образа к выполнению
Версия image_setup() для расширения BIOS
Передача управления образу
Версия image_start() для расширения BIOS
Копирование данных из верхней памяти (выше 1 Мбайт) в буфер или нижнюю памяти (ниже 1 Мбайт)
Вывод байта в видеопамять
Вывод символа в видеопамять
Вывод длинного целого числа в видеопамять
Вывод строки и длинного целого числа в видеопамять
Вывод строки в видеопамять
Вывод переменной в видеопамять
Вывод слова в видеопамять
Перевод процессора в защищенный режим
Вывод 16-разрядного шестнадцатеричного числа в UART
Вывод 32-разрядного шестнадцатеричного числа в UART
Вывод 8-разрядного шестнадцатеричного числа в UART
Инициализация внутрисхемного UART
Вывод одного символа в UART
Вывод строки с нулевым символом на конце в UART
Вывод 16-разрядного шестнадцатеричного числа в UART
Вывод 32-разрядного шестнадцатеричного числа в UART
Вывод 8-разрядного шестнадцатеричного числа в UART
Включение внутрисхемного UART
Вывод одного символа в UART
Вывод строки с нулевым символом на конце в UART

Библиотека libstartup позволяет создавать нестандартные модули startup. Ниже перечислены её компоненты:

Статья Описание
Добавляет запись о кеше в соответствующий раздел системной страницы
Добавляет callout в соответствующий раздел системной страницы
Добавляет несколько callout-ов в соответствующий раздел системной страницы
Добавляет запись о прерывании в соответствующий раздел системной страницы
Добавляет несколько записей о прерывании в соответствующий раздел системной страницы
Добавляет область оперативной памяти
Добавляет строку в пул строковых литералов системной страницы
Добавляет типизированную строку в пул строковых литералов системной страницы (раздел typed_strings)
Выделяет память для раздела qtime системной страницы
Выделение свободной памяти из пула
Создание буфера отладочного вывода
Добавляет запись в раздел asinfo системной страницы
Добавляет новые записи в раздел asinfo системной страницы и задает их владельца
Добавляет записи memory и io по умолчанию в раздел asinfo системной страницы
Поиск заданного элемента в разделе asinfo системной страницы
Поиск заданного элемента в разделе asinfo системной страницы
Конвертирование указателя на запись asinfo системной страницы в смещение
Конвертирование смещения в указатель на запись asinfo системной страницы
Задает поле checker callout-а указанной записи asinfo системной страницы
Задает поле priority callout-а указанной записи asinfo системной страницы
Указывает startup не использовать указанную память для хранения внутренних данных
Устанавливает календарное время полю раздела qtime системной страницы
Выделение свободной памяти из пула
Предоставляют доступ к области портов ввода/вывода
Предоставляют доступ к области памяти
Связывает указатель на произвольные данные с callout-ом ядра
Предоставляет доступ к микросхеме, которая находится по некоторому физическому адресу
Прекращает доступ к микросхеме, предоставленный с помощью chip_access()
Считывание данных из устройства, доступ к которому предоставлен с помощью chip_access()
Запись данных в устройство, доступ к которому предоставлен с помощью chip_access()
Копирует данных в пределах физической памяти
Удаляет типизированную строку из пула строковых литералов системной страницы (раздел typed_strings)
Поиск информации в области данных, заполняемой начальным загрузчиком
Поиск типизированной строки из пула строковых литералов системной страницы (раздел typed_strings)
Обработка стандартных опций startup
Добавляет новое устройство в раздел hwinfo системной страницы
Добавляет тег в создаваемый hw-элемент раздела hwinfo системной страницы
Добавляет тег irq в раздел hwinfo системной страницы
Добавляет тег location в раздел hwinfo системной страницы
Добавляет тег hwi_nicaddr в создаваемый hw-элемент раздела hwinfo системной страницы
Добавляет новое устройство типа часы реального времени в раздел hwinfo системной страницы
Добавляет новый элемент в раздел hwinfo системной страницы
Добавляет новый тег в раздел hwinfo системной страницы
Поиск смещения относительно начала раздела asinfo системной страницы для поля addrspace
Инициализирует раздел asinfo системной страницы
Инициализирует раздел cacheattr системной страницы
Инициализирует раздел cpuinfo системной страницы
Инициализирует раздел hwinfo системной страницы
Инициализирует структуру intrinfo системной страницы
Настраивает режим виртуальной адресации процессора
Инициализирует раздел pminfo системной страницы
Инициализирует структуру qtime системной страницы
Инициализирует структуру qtime системной страницы (для процессоров SA1100 и SA1110)
Определение местоположения и размера доступной памяти и инициализирует структуру asinfo системной страницы
Инициализации отладочного вывода в системный журнал (slogger)
Инициализирует раздел smp системной страницы
Инициализирует системную страницу и ее подструктуры (устаревшая функция)
Обнаруживает загрузочные образы, которые необходимо запустить
Резервирует указанный блок памяти
Отображает данные в отладочном терминале
Определение местоположения и размера доступной памяти и инициализирует структуру asinfo системной страницы
Отображает содержимое структур системной страницы
Вывод символов в системный журнал (slogger)
Возвращает количество секунд с 00 часов 00 минут 1-го января 1970 г. по Гринвичу
Предоставляет доступ к области портов ввода/вывода
Освобождает примапированную область портов ввода/вывода
Предоставляет доступ к области памяти
Освобождает примапированную область памяти
Структура, описывающая callout ядра
Загрузочный заголовок IPL
Информация об обнаруженных модулем startup жестких дисках
Информация об обнаруженных модулем startup жестких дисках
Область для передачи данных от IPL к модулю startup
Фрагменты памяти, размеченные модулями IPL и startup
Синоним структуры struct startup_info_hdr
Информация о текущем времени, определённом модулем startup
Добавляемая в системную страницу запись о прерывании
Распаковывает сжатый образ ОС перед передачи управления main()

Техническая поддержка

Для получения технической поддержки посетите раздел Поддержка сайта ( www.kpda.ru ). Вы обнаружите перечень предлагаемых способов оказания технической поддержки, включая публичный форум, форму обратной связи и контактные данные.

© 2005-2025, ООО "СВД ВС".




Предыдущий раздел: Запуск системы, быстрая активация устройств