Этапы разработки ПО и средства разработчика

Система средств разработки программного обеспечения сходен для всех разработчиков ЦСП и обычно состоит из компилятора языка С или С++, ассемблера, компоновщика, сплиттера, загрузчика, средств отладки (симулятора и эмулятора), библиотеки утилит.

Блок-схема процесса разработки системы на примере процессоров семейства ADSP-21ххх приведена на рис.4.

Рис.4.

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

Генерация кода начинается с написания исходных файлов на языке Си или Ассемблера. Каждый файл ассемблируется отдельно в объектный файл, содержащий машинные инструкции, "понимаемые" процессором. Использование модульного принципа разработки программ облегчает и ускоряет модификацию кода и дает возможность использовать библиотечные функции.

Отдельные файлы (вместе с необходимыми файлами библиотек) затем компонуются вместе для формирования программы. Местоположение в памяти перемещаемых объектов определяется компоновщиком. Компоновщик читает информацию о размещении сегментов программы в памяти системы объектной аппаратуре, чтобы определить расположение сегментов кода и данных. Неперемещаемые сегменты кода и данных размещаются по определенным адресам памяти с необходимыми атрибутами. Компоновщик на основе объектных файлов и файлов-библиотек генерирует файл с расширением "exe", содержащий "карту памяти", который может быть загружен в симулятор или эмулятор для тестирования.

Полученный исполняемый файл должен быть загружен в память процессора (или внешнюю память) и выполнен. Для выполнения этой задачи используется небольшая специальная программа – "загрузчик" (фиксированного размера, обычно не более 256 инструкций), основной функцией которой является начальная загрузка инструкций программы из внешнего ПЗУ, через последовательный или параллельный интерфейс, интерфейс хост-процессора и запись их во внутреннюю память процессора по определенным адресам (в том числе и поверх кода загрузчика – он больше не понадобится). Утилита, которая генерирует загрузочный файл (boot-loadable file), содержащий загрузчик и программу, обычно входит в состав средств разработки. Сам "загрузчик" загружается при включении питания процессора благодаря установке сигналов на соответствующих ножках. Например, если (для ADSP-2106x) ножки сконфигурированы для загрузки из EPROM, то при включении питания аппаратно устанавливаются такие начальные значения в регистры управления DMA-пересылками через внешний порт, которые обеспечивают чтение из внешнего ПЗУ 256 инструкций, запись их по фиксированному адресу во внутренней памяти и передачу управления на адрес первой команды "загрузчика".

Если программный код системы не должен загружаться во внутреннюю память процессора, а должен храниться и выполняться из внешней памяти (из внешнего ПЗУ), то вместо загрузчика следует использовать утилиту "сплиттер", которая по карте исполняемого файла генерирует файл одного из промышленных стандартов для программатора ПЗУ (Intel Hex 32, Motorola-S, Tectronix, SDSMAC (TI Tagged) и др.). После установки ПЗУ в объектную аппаратуру процессор может выполнять прикладные программы из внешней памяти.

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

Для автоматизации процесса компиляции, ассемблирования, компоновки, генерации могут использоваться MAKE-файлы или файлы сценариев (scripts), которые содержат последовательность вызовов системных утилит с задаваемыми ключами, необходимые действия в зависимости от результатов, например, компиляции (есть ошибки или нет). Чем-то напоминает пакетные файлы MS-DOS.

В последние годы начали появляться интегрированные системы разработки ПО для различных ЦСП, обеспечивающие как написание программы, так и ее компиляцию, программную симуляцию и аппаратную отладку, обеспечивающие взаимодействие с аппаратным эмулятором (например, VisualDSP++ для ADSP, CodeComposerStudio для TMS, MPLab для Microchip, Motorola DSP56xxx). Стоимость ПО разработчика в зависимости от состава средств – от $1000 до $5000.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: