Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - Олег Вальпа
Шрифт:
Интервал:
Закладка:
После установки средств разработки, в каталоге ADI_DSP должны находиться подкаталоги с файлами транслятора, библиотеками и другими служебными файлами. Основные исполняемые файлы располагаются после инсталляции пакета в каталоге C:ADI_DSP21XXBIN. Перечень исполняемых файлов и их назначение приведены в табл. 6.2.
Таблица 6.2 Назначение исполняемых файлов
Имя файла Назначение bld21.exe Системный конфигуратор (построитель) программы cc1.exe, g21.exe Компиляторы языка Си asm21.exe Компилятор ассемблера asmpp.exe Ассемблер препроцессор asm2.exe Ассемблер ld21.exe Компоновщик (редактор связей) Iib21.exe Библиотекарь (программа для работы с библиотеками программ) spl21.exe Разделитель программ для программирования ПЗУ (сплиттер) sim2181.exe Симулятор программ для процессора ADSP-2181 hexbin2.exe Преобразователь HEX кода в двоичный форматПри инсталляции пакета кросс средств, в файле автозагрузки автоматически создаются служебные строки, определяющие пути к каталогам пакета и некоторые переменные среды окружения операционной системы. Подобные записи создают многие инсталляционные пакеты. В результате чего может произойти переполнение служебной области памяти компьютера, и некоторые программы не будут работать.
Для того чтобы избежать подобных неприятностей, можно воспользоваться другим способом. Независимо от того, были ли произведены записи в файл автозагрузки или нет, можно включить все необходимые служебные строки в собственный командный файл, с помощью которого в дальнейшем выполнять автоматическую трансляцию программ. Дело в том, что при выполнении командного файла операционная система автоматически запускает новый сеанс программы command.com, в котором можно определить новые пути поиска файлов и переменные среды с помощью соответствующих команд. На практике это делается следующим образом.
Создается командный файл, в начале которого записываются строки определения пути поиска файлов и установки переменных среды, а далее записываются строки команд для автоматизации необходимого процесса трансляции. После запуска такого командного файла, с именем файла транслируемой программы в качестве параметра, произойдет полная трансляция файла программы, с получением всех необходимых файлов для загрузки в процессор. Ниже приведен текст такого командного файла, специально созданного мною для облегчения и ускорения трансляции программ для сигнального процессора ADSP-2181. Данный командный файл позволяет выполнять трансляцию файлов программ, начиная с компилятора, минуя операции построителя системы System Builder и трансляции программы с языка Си.
@echo off
set path=c:adi_dsp21XXbin
set adi_dsp=c:adi_dsp
if %1 == goto no_file
echo Компиляция...
asm21 %1 -2181 -l
if not exist %1.obj goto error
echo ...завершена успешно pause
echo Компоновка...
ld21 %1 -a adsp2181 -e %1 -x -g
if not exist %1.lda goto next1
del %1.lda
:next1
ren %1.exe %1.lda
if not exist %1.lda goto error2
echo ...завершена успешно pause
echo Сплиттинг...
rem для загрузки через BDMA
spl21 %1.lda %1 -loader -2181 > %1.msg
echo ...завершен успешно
pause
echo Преобразование в бинарный файл...
hexbin2 %1.bnm %1.bin m 0 > %1.msg
echo ...завершено успешно
pause
goto end
:error
echo Ошибка компиляции!
pause
goto end
:error2
echo He найден файл %1.lda !
pause
goto end
:no_file
echo Используйте: asmdsp.bat имя файла без расширения
pause
:end
Введите текст этого файла с помощью любого текстового редактора с кодировкой DOS в компьютер и сохраните в файле с именем asmdsp.bat или скопируйте с компакт-диска, прилагаемого к книге. Он позволит автоматизировать процесс трансляции файлов с программами для сигнального процессора. Если просмотреть строки этого командного файла, то нетрудно понять что он делает. В первой строке командного файла находится команда запрета отображения командных строк на экран. Далее следуют две строки для установки пути к рабочему каталогу с файлами трансляции и переменной adi_dsp. Затем проверяется, было ли введено имя файла в командной строке при запуске данного файла. Если имени задано не было, производится переход на метку с названием no file, после которой на экран отобразится подсказка о правильном использовании командного файла. Команда pause выводит строку «Нажмите любую клавишу…» и ожидает соответствующее действие от пользователя. Если имя файла для трансляции было задано в строке при запуске командного файла, то переход на метку не производится и начинается процесс компиляции файла с программой. Все процессы трансляции предваряются соответствующим сообщением. Компиляция выполняется командой asm21 %1 -2181 -l. Здесь после вызова программы компилятора asm21.exe с именем файла из командной строки %1 используется ключ -2181 для задания типа процессора и ключ -I для генерации листинга программы. Список всех ключей для конфигуратора bld21.exe, компилятора asm21.exe, компоновщика ld21.exe, распределителя spl2.exe и симулятора sim2181.exe можно получить, запустив отдельно соответствующую программу без параметров или с ключом -help. Переведенный текст этих сообщений приведен в табл. 6.3.
Таблица 6.3 Формат записи программ и назначение ключей
bld21.exe [-ключ] имя_файла -c Установить чувствительность к регистру символов -help Вывести на экран справку о программе asm21.exe [-ключ_1] [-ключ_2] … [-ключ_N] имя_файла -Dvar[=exp] Определить идентификатор для Си препроцессора, например -dten=10 -c Установить чувствительность к регистру символов -cp Включить Си препроцессор -I Создать файл листинга программы -i [глубина] Раскрыть содержимое включенных файлов в листинге с указанной глубиной -m [глубина] Раскрыть макросы в файле листинга с указанной глубиной -p Использовать только препроцессор -s Отменить семантическую проверку много функциональных инструкций -o имя_файла Переименовать выходной файл -2181 Поддержать специальные ассемблерные инструкции для процессора ADSP-2181 -help Вывести на экран справку о программе ld21.exe имя_файла1 [имя_файла2] … [имя_файлаN] [-ключ_1] [-ключ_2] … [-ключ_N] -i имя_файла Указать командный списочный файл -e имя Присвоить выходным файлам новое имя (по умолчанию 210x.exe) -a имя_файла Указать файл описания архитектуры -user имя_файла Поиск библиотечного файла, созданного утилитой построителя библиотеки Iib21.exe -s размер Задать размер динамической памяти -dir путь Указать пути каталога для поиска файлов библиотек -lib Компоновать программу с библиотекой Си -g Создать файл таблицы символов *.sym -pmstack Переместить стек в память программ (PM) -rom Использовать ПЗУ версии библиотечных программ Си -c Создать стек для компилированных Си программ (DM) -dryrun Быстрый запуск для теста на ошибки без создания файла загрузки -x Создать файл распределения памяти *.map -p Поместить копию библиотечной подпрограммы на загрузочных страницах -group file Использовать файл групповых модулей -help Вывести на экран справку о программе spl21.exe входной_файл выходной_файл [-ключ_1] [-ключ_2] … [-ключ_N] -dm Распределить только память данных DM -pm Распределить только память программ РМ -bm Распределить только память загрузки BM -bs # Установить размер загрузочной памяти (2048, 1024, 512 или 256 байт) -bb # Установить размер границы загрузки (2048 или 1024 байт) -u Формат выходного файла Motorola S (по умолчанию) -i Формат выходного файла Intel Hex -us Формат Motorola S1, байтовый (только с ключами -pm или -dm) -us2 Формат Motorola S2, байтовый (только с ключами -pm или -dm) -ui Формат Intel Hex, байтовый (только с ключами -pm или -dm) -loader Создать загрузочный файл -bp # Большие загрузочные страницы, где # как HEX адрес -bi # Большие загрузочные страницы, где # как HEX величина -flag Большие загрузочные страницы с использованием выходных флагов -Id Использовать специальный загрузчик -2181 Создать код для процессора ADSP-2181 sim2181 [-a имя_файла] [-c] [-e имя_файла] [-h] [-k имя_файла] [-v] [-w имя_файла] -a имя_файла Считывать при запуске файл архитектуры -c Установить чувствительность к регистру символов -e имя_файла Загрузить при запуске входной файл с расширением exe (lda) -h Вывести на экран справку о программе -k имя_файла Загрузить и выполнить файл командных строк -o имя_файла Генерировать файл с сообщениями об ошибках -v Избыточность -w имя_файла Запустить симулятор с загрузкой ранее созданного файла конфигурации окон с расширением winПосле компиляции программы будет создан файл с именем программы и расширением obj. Однако если на этапе компиляции будут обнаружены ошибки, этого не произойдет и с помощью команды if not exist %1.obj goto error будет осуществлен переход на метку error, для выдачи соответствующего сообщения. При успешной компиляции трансляция программы продолжится.