Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора з романова.docx
Скачиваний:
6
Добавлен:
22.11.2019
Размер:
6.65 Mб
Скачать

Основы разработки встроенных систем

Одной из характерных особенностей ВС является кроссплатформенность среды разработки.

Основные составляющие среды разработки:

  1. Центральная система (хост-система)

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

  3. Разнообразные соединения между системами

Рис 11.1

Многие производители микросхем признают необходимость встроенной в микропроцессор отладки, называемой отладкой на чипе (ОНЧ) (OCD). BDM и JTAG являются двумя типами решения ОНЧ, которые позволяют осуществить прямой доступ к микропроцессору и контроль над ним и ресурсами системы, без использования служб отладки на целевой системе или дорогих внутрисистемных эмуляторов. BDM – это фоновый режим отладки. Он использует интерфейс отладки, введенный компанией Motorola для своих микропроцессоров. Этот термин также описывает подход метода отладки, предоставляемый решением ОНЧ. JTAG – объединённая группа тестирования, созданная производителями электроники для разработки нового и экономически выгодного метода тестирования. Результатом работы консорциума JTAG стал стандарт IEEE 1149.1. основные инструменты разработки предлагаемой хост-системой являются: крос-компилятор, компоновщик, отладчик на уровне исходного кода,

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

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

Далее рассматриваются следующие вопросы:

  1. Исполняемый и компонованный формат для объектных файлов.

  2. Компоновщик и командный файл компоновщика.

  3. Размещение (отображение) выполняемого образа на целевой ВС.

В лекции не дается описание каждого средства, такого как компилятор и компоновщик, а также описание формата объектного файла. Вместо этого акцент сделан на описание каждого средства разработки и общего формата объектного файла, что является наиболее существенным для ВС.

Обзор компоновщика и процесса компоновки

Рис. 11.2 показывает каким образом различные средства разработки получают входные файлы и создают соответствующие выходные файлы, которые будут использоваться при построении исполняемого кода.

Разработчик программы создает файл программы и файл заголовок в исходном коде на языке С/С++. Часть программы может быть написана на Ассемблере и помещена во соответствующий исходный файл Ассемблера. Разработчик создает make-файл для утилиты make, которая легко может отслеживать изменения в файлах и вызывать компилятор ассемблера, когда это необходимо. Из этих исходных файлов компилятор и ассемблер создают объектные файлы, которые содержат как машинный код так и данные программы. Архиватор объединяет набор объектных файлов для формирования библиотеки. Компоновщик принимает эти объектные файлы в качестве входных данных и производит либо исполняемый образ, либо объектный файл, который можно использовать для дополнительных связей с другими объектными файлами. Командный фал компоновщика указывает компоновщику как объединить объектные файлы и где разместить двоичный код и данные в целевой ВС. Основная функция компоновщика – объединение нескольких объектных файлов в больший объектный файл либо разделяемый объектный файл (файл коллективного доступа) либо в окончательный исполняемый образ.