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 Формат записи программ и назначение ключей
После компиляции программы будет создан файл с именем программы и расширением obj. Однако если на этапе компиляции будут обнаружены ошибки, этого не произойдет и с помощью команды if not exist %1.obj goto error будет осуществлен переход на метку error, для выдачи соответствующего сообщения. При успешной компиляции трансляция программы продолжится.
Компоновка программы выполняется с помощью командной строки: ld21 %1 -a adsp2181 -e %1 -x -g. Здесь после команды вызова компоновщика ld21.exe с именем файла из строки запуска командного файла %1, следует несколько ключей с параметрами. Ключ -a adsp2181 указывает имя файла архитектуры процессора adsp2181.ach. Данный файл создан с помощью построителя программ System Builder и входит в поставку пакета кросс средств. Он состоит из пяти следующих строк:
$2181
$ADSP2181
$0000 3FFF paxINT_PM_USER t
$0000 3FDF dadINT_DM_USER t
$
Этот файл содержит данные, определяющие тип процессора и структуру его памяти, и всегда должен находиться в том же каталоге, где находится файл транслируемой программы. Ключ -е %1 назначает имя выходного файла. Ключи -x и -g предназначены для генерации файла карты памяти *.map и файла с таблицей символьных имен *.sym соответственно. Эти файлы можно использовать в дальнейшем для анализа распределения памяти процессора. Файл с расширением sym необходим, кроме того, для отладки программы с помощью симулятора sim2181.exe. В результате компоновки будет получен файл с именем программы и расширением exe. Этот файл уже можно использовать для загрузки в симулятор или непосредственно в процессор, например через интерфейс IDMA. Формат данного файла приведен в табл. 6.4.