
- •Ввод-вывод на уровне технических средств компьютера. Программируемы ввол-вывод. Фрагмент программы управления скоростью двигателя. Пояснения
- •Прямой доступ к памяти (пдп – dma). Компоновка схемы пдп с использованием внешнего контроллера. Временная диаграмма пдп. Пояснения.
- •Побитное отображение устройств. Побитая карта устройств ввода-вывода в управляющем слове для выделенной памяти. Рисунок, пояснения
- •Обработка прерываний на уровне технических средств компьютера. Основные понятия и определения. Поддержка прерываний командами процессора.
- •Процесс обработки прерываний в системе с единственным прерыванием. Рисунок, пояснения.
- •Программируемый контроллер прерываний. Назначение. Рисунок, пояснение.
- •Обработка нескольких прерываний с использованием внешнего контроллера прерываний. Рисунок, пояснения. Фрагмент кода обслуживания на псевдоассемблере для 2х адресной архитектуры.
- •Согласование устройство и цп с помощью прерываний. Контроллер единственного периферийного устройства. Рисунок, пояснения.
- •Согласований устройство и ца с помощью прерываний. Несколько контроллеров соединенные с цп через пкп (программируемый контроллер прерываний)
- •Прерываемые инструкции. Сторожевые таймеры (Watchdog Timers)
- •Основы разработки встроенных систем. Типовая среда разработки с использованием кросс-платформы. Рисунок, пояснения.
- •Обзор компоновщиков и процесса компоновки. Создание файла образа для целевой системы. Рисунок, пояснения.
- •Основные функции компоновщика. Взаимосвязь между таблицей символов и таблицей перемещений (переадресации). Рисунок, пояснения.
- •Форматы исполняемых и компонуемых файлов. Рисунок, пояснения.
- •Форматы исполняемых и компонуемых файлов. Раздел заголовка и заголовок программы. Листинг, таблица типов разделов, пояснения.
- •Размещение исполняемых образов в памяти целевой встроенной системы. Командный файл компоновщика. Упрощенная схема и карта памяти целевой системы. Рисунок, пояснения.
- •Директивы компоновщика section и memory. Форматы директив, примеры использования
- •Инициализация встроенной системы. Общие положения.
- •Инструменты целевой системы передача образа. Общий вид целевой встроенной системы, размещенной на плате.
- •Встроенный загрузчик.
- •Встроенный монитор и целевое средство отладки.
- •Последовательность загрузки и выполнения образа после его перемещения из пзу в озу. Рисунок, пояснения
- •Последовательность загрузки и выполнения образа из озу после его передачи из хост системы. Рисунок, пояснения.
- •Инициализация программного обеспечения целевой системы. Программные компоненты целевой системы. Рисунок, пояснения.
- •Процесс инициализации программного обеспечения. Рисунок, пояснения.
- •Инициализация ос рв целевой системы.
- •Внутрисхемная отладка (отладка на чипе) целевой системы.
Процесс инициализации программного обеспечения. Рисунок, пояснения.
Ранее были описаны шаги, в которых загрузочный образ выполняется после того, как центральный процессор начинает выполнение команд с вектора сброса. Обычно во время этого этапа, выполняется минимальная инициализация аппаратной части, необходимая для того, чтобы обеспечить работу загрузочного образа, включая: 1. Начало выполнения с вектора сброса; 2. Перевод процессора в заданное состояние, с помощью установки соответствующих регистров: o Получение типа процессора o Получение или установка тактовой частоты процессора; 3. Отключение прерываний и кэша. 4. Инициализацию контроллера памяти, чипов памяти и блоков кэша: o Получение начальных адресов памяти o Получение размера памяти o При необходимости, выполнение предварительного тестирования памяти
После того, как во время загрузочной последовательности инициализируется центральный процессор и память, происходит копирование и, при необходимости, распаковка участков кода предназначенного для выполнения. Также копируются и распаковываются данные кода в ОЗУ. Большая часть кода, предназначенного для ранней инициализации, написана на низкоуровневом языке ассемблера, характерном для архитектуры центрального процессора целевой системы. Код инициализация на более поздних шагах может быть написан на языках высокого уровня, таких как С.
По мере выполнения загрузочного кода, он вызывает соответствующие функции для инициализации других аппаратных компонентов целевой системы, если они присутствуют. В конце концов, инициализируются все устройства, размещенные на плате целевой системы (как показано в шаге 3 Рисунка 15.4). Этот процесс включает в себя: Установка обработчиков выполнения; Инициализация обработчиков прерываний;
Инициализация интерфейсов шин, таких как VME, PCI и USB; Инициализация периферийных устройств, таких как последовательные порты, сетевые подключения и устройства SCSI.
Написание BSP для конкретной целевой системы – нетривиальная задача. Разработчик должен обладать хорошим понимаем аппаратных компонентов, лежащих в основе системы. Вместе с пониманием структурных схем, потоков данных, карты памяти и карты прерываний, разработчик также должен знать язык ассемблера микропроцессора целевой системы.
Разработчики могут сохранить много времени и сил, используя существующие примеры пакетов, если они поставляются вместе с оценочной версией платы целевой системы или получены от производителя ОС РВ. Обычно, в этих примерах пакетов перечислены регистры микропроцессора, которые могут понадобиться разработчику, а также приведена последовательность, в которой нужно с ними работать, чтобы корректно инициализировать оборудование целевой системы.
С завершением фазы инициализации BSP все оборудование целевой системы инициализировано и у верхних уровней программного обеспечения (например, у ОС РВ) есть набор вызовов функций для взаимодействия с аппаратными компонентами целевой системы.
Инициализация ос рв целевой системы.
Шаг 4 (см. Рисунок 15.4) начинает инициализацию программного обеспечения ОС РВ.
Ключевые события, которые могут произойти с шага 4 по шаг 6, включают:
1. Инициализация ОСРВ
2. Инициализация различных объектов и сервисов ОСРВ, если они присутствуют (обычно управляются с помощью конфигурируемого header файла):
oобъекты задач
oсемафорные объекты
oобъекты очереди сообщений
oсервис таймеров
oсервисы прерываний
oсервисы управления памятью
3. Создание необходимых стеков для ОС РВ
4. Инициализация дополнительных расширений ОСРВ, таких как:
oстек TCP/IP
oфайловые системы
5. Запуск ОСРВ и начальных задач
Компоненты ОСРВ (например, задачи, семафоры и очереди сообщений) обсуждаются детальнее в дальнейших главах этой книги. Сейчас запомните, что ОСРВ абстрагирует код приложений от аппаратной части системы и предоставляет программные объекты и сервисы, которые упрощают разработку приложений для встроенных систем.