
- •Ввод-вывод на уровне технических средств компьютера. Программируемы ввол-вывод. Фрагмент программы управления скоростью двигателя. Пояснения
- •Прямой доступ к памяти (пдп – dma). Компоновка схемы пдп с использованием внешнего контроллера. Временная диаграмма пдп. Пояснения.
- •Побитное отображение устройств. Побитая карта устройств ввода-вывода в управляющем слове для выделенной памяти. Рисунок, пояснения
- •Обработка прерываний на уровне технических средств компьютера. Основные понятия и определения. Поддержка прерываний командами процессора.
- •Процесс обработки прерываний в системе с единственным прерыванием. Рисунок, пояснения.
- •Программируемый контроллер прерываний. Назначение. Рисунок, пояснение.
- •Обработка нескольких прерываний с использованием внешнего контроллера прерываний. Рисунок, пояснения. Фрагмент кода обслуживания на псевдоассемблере для 2х адресной архитектуры.
- •Согласование устройство и цп с помощью прерываний. Контроллер единственного периферийного устройства. Рисунок, пояснения.
- •Согласований устройство и ца с помощью прерываний. Несколько контроллеров соединенные с цп через пкп (программируемый контроллер прерываний)
- •Прерываемые инструкции. Сторожевые таймеры (Watchdog Timers)
- •Основы разработки встроенных систем. Типовая среда разработки с использованием кросс-платформы. Рисунок, пояснения.
- •Обзор компоновщиков и процесса компоновки. Создание файла образа для целевой системы. Рисунок, пояснения.
- •Основные функции компоновщика. Взаимосвязь между таблицей символов и таблицей перемещений (переадресации). Рисунок, пояснения.
- •Форматы исполняемых и компонуемых файлов. Рисунок, пояснения.
- •Форматы исполняемых и компонуемых файлов. Раздел заголовка и заголовок программы. Листинг, таблица типов разделов, пояснения.
- •Размещение исполняемых образов в памяти целевой встроенной системы. Командный файл компоновщика. Упрощенная схема и карта памяти целевой системы. Рисунок, пояснения.
- •Директивы компоновщика section и memory. Форматы директив, примеры использования
- •Инициализация встроенной системы. Общие положения.
- •Инструменты целевой системы передача образа. Общий вид целевой встроенной системы, размещенной на плате.
- •Встроенный загрузчик.
- •Встроенный монитор и целевое средство отладки.
- •Последовательность загрузки и выполнения образа после его перемещения из пзу в озу. Рисунок, пояснения
- •Последовательность загрузки и выполнения образа из озу после его передачи из хост системы. Рисунок, пояснения.
- •Инициализация программного обеспечения целевой системы. Программные компоненты целевой системы. Рисунок, пояснения.
- •Процесс инициализации программного обеспечения. Рисунок, пояснения.
- •Инициализация ос рв целевой системы.
- •Внутрисхемная отладка (отладка на чипе) целевой системы.
Форматы исполняемых и компонуемых файлов. Рисунок, пояснения.
Объектный файл содержит:
Основную информацию про объект, размер файла , бинарный код и размер данных, и имя исходники при помощи которого он был создан. Машинно-архитектурные инструкции и данные. Таблицу символов и перемещения. Информацию отладки, которая используется отладчиком.
Информация хранится в формате объектных файлов. Идея стандартного формата объектного файла позволить средствам разработки разных производителей таких как компилятор ,компоновщик, транслятор и отладчик отвечающим определённым стандартам взаимодействовать друг с другом.
Такая возможность взаимодействия означает что разработчик может использовать компилятор производителя А , а компоновщик производителя Б. Это дает разработчику гибкость в выборе средств разработки потому что разработчик может выбирать инструмент основываясь на его функциональных возможностях а не на производителе.
Два наиболее распространённых формата объектных файлов это общий формат объектного файла(Common Object File Format – COFF) и формат исполняемых и компонуемых файлов (Executable and Linking Format – ELF). Эти файловые форматы несовместимы друг с другом, поэтому необходимо обращать особое внимание на выбор средств разработки, в том числе и отладчика – они должны распознавать формат выбранный для разработки.
Рассмотрим ELF потому что он может замещать COFF. Понимание формата объектного файла позволяет разработчику разместить выполняемый образ в целевой встроенной системе для статического хранения также как и для загрузки и выполнения.
Для того что бы это сделать мы должны рассмотреть специфику ELF, и как это связано с компоновщиком. Используя формат объектного файла ELF, компилятор организовывает скомпилированную программу в несколько определенных системой или пользователем, контентных групп, называемых секциями. Бинарные инструкции программы, двоичные данные, таблица символов, таблица перемещения, и отладочная информация организована и содержатся в различных секциях. Каждая секция имеет тип. Контент помещается в раздел, если тип раздела соответствует типу контента. Секция также содержит важную информацию, такую как адреса загрузки и адрес запуска. Понимание адреса загрузки и адреса выполнения важно, потому что адрес запуска и адрес загрузки может быть разным во встраиваемых системах. Это может быть полезны для понимания загрузчика встроенных систем и концепции загрузчика компоновщика.
Ранее идея обсуждалась, что встроенные системы обычно имеют некоторую форму дисков для долговременного хранения и программного обеспечения для встроенных систем может храниться в ПЗУ. Изменяемые данные должны находиться в оперативной памяти. Программы, которые требуют высокой скорости исполнения также выполняются из оперативной памяти. Обычно таким образом, небольшие программы в ПЗУ, называют погрузчиком, копии инициализируются переменные в памяти, передает код программы в оперативной памяти компьютера, и начнет выполнение программы из памяти. Этот физический адрес дисков рассматривается как адрес раздела. Адрес выполнения раздела ссылается на место, где раздел находится на момент исполнения. Например, если раздел копируется в оперативную память для выполнения, адрес выполнения раздела ссылается на адрес в памяти, что является адресом назначения операции копирования. Компоновщик использует адрес выполнения программы для символа расширения.
Формате ELF файл имеет два различных толкования, как показано на рисунке 11.4. Компоновщик интерпретирует файл как компоновочный модуль описанный в таблице заголовка, в то время как загрузчик интерпретирует файл как исполняемый модуль описывается заголовок таблицы программы.