Рассматриваются подходы к проектированию пакетов поддержки устройств (ППМ, BSP) и вопросы разработки загрузочных образов
Руководство «Построение встраиваемых систем» предназначено для разработчиков встраиваемых систем, функционирующих под управлением ЗОСРВ «Нейтрино».
После изучения данного руководства разработчики смогут как самостоятельно вносить изменения в публичные и предоставляемые BSP, так и разрабатывать собственные.
Следующая таблица содержит ссылки на статьи с общими сведениями:
Статья | Описание |
---|---|
Общая информация о создании полнофункциональных встраиваемых систем | |
Общие принципы работы с пакетами поддержки плат | |
Создание загрузочного образа операционной системы | |
Разработка кода, подготавливающего систему к передаче управления загрузочному образу | |
Разработка инициализирующего кода в составе загрузочного образа | |
Решение проблем с оборудованием | |
Практики проектирования файлов построения загрузочного образа |
При разработке 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, ООО "СВД ВС".
Предыдущий раздел: Запуск системы, быстрая активация устройств