- •Цель и содержание работы
- •Базовая архитектура семейства adsp-21xx
- •2.1. Особенности структуры
- •Вычислительные модули
- •Генераторы адресов данных. Программный автомат
- •Оперативная память
- •Внутренние периферийные устройства
- •Программно-логическая модель
- •Команды алу
- •Система команд
- •Команды умножителя-накопителя
- •Команды устройства сдвига
- •Команды пересылки данных
- •Команды передачи управления в программе
- •Многофункциональные команды
- •Другие команды
- •Форматы представления чисел
- •Запуск среды разработки программ
- •Создание проекта
- •Создание файлов кода программы
- •Компиляция и компоновка
- •Тестирование и отладка
- •Лабораторное задание
- •Контрольные вопросы
Создание проекта
Для создания нового файла проекта нужно выбрать пункт «New» из меню «Project» или, нажав правую кнопку мыши в окне «Project Window», выбрать пункт «New Project» контекстного меню (рис. 11).
Рис. 11. Окно проекта
В появившемся окне ввести имя файла проекта и сохранить проект в выбранной рабочей папке, нажав кнопку «Сохранить». При создании нескольких проектов лучше сохранять их в разных папках во избежание путаницы. В открывшемся окне установок проекта (рис. 12) проверить все выпадающие списки на соответствие выбранному семейству процессора. В окне «Name» закладки «Project» проверить название файла проекта, а в выпадающем списке «Settings for configuration» название папки для отладочных файлов.
Открыв закладку «General», указать каталоги вывода «Output Directories»: «Intermediate files» (размещение промежуточных файлов) и «Output files» (размещение выходных файлов). По умолчанию каталогом вывода является каталог «Debug», находящийся там же, где размещен проект.
Рис. 12. Окно опций проекта
Выбрав необходимые опции, нажать «OK». Опции, устанавливаемые нами при создании проекта, можно будет изменить, воспользовавшись меню «Project \ Project Options».
К созданному
проекту необходимо добавить файл
«ADSP-2181.ldf», путь к которому «…\ VisualDSP
\ 218x \ ldf
\ ADSP-2181.ldf». Скопировать этот файл в
каталог проекта. Добавить скопированный
файл в проект, используя меню «Project
\ Add to
Project
\File(s)»
или нажав на панели инструментов кнопку
.
После добавления этот файл появится в
каталоге «Linker
Files»
окна «Project
Window».
Файлы описания компоновщика (*.LDF файлы) описывают целевую систему, карту кода программы и данных в пределах системной памяти и внутри семейства процессоров. Каждый проект требует *.LDF файл. Этот файл можно редактировать.
Если файл с текстом программы (тексты на языках С/С++ и ассемблер) уже существует, то также добавляем его к проекту. Он будет размещен в каталоге «Source Files» (исходные файлы). Если файла текста программы нет, необходимо создать его.
Создание файлов кода программы
Для создания нового файла исходного кода программы в меню «File» выбрать пункт «New» или нажать сочетание клавиш «Ctrl+N». В появившемся окне с заголовком «Untitled Edit 1» набрать код программы генерирования гармонического сигнала, приведенный ниже:
//**********************************************
// Программа формирования гармонического сигнала
// **********************************************
#define n 1024 // определяем n=1024
.section/data data1; // объявление секции данных data1
.VAR/circ sin[n] = "sin1024.dat"; // циклический буфер данных,
// хранящий информацию о значениях
//синуса, заполняется из файла sin1024.dat
.var harmony[1024]; // буфер данных, содержащий
// значение гармонической функции
.var/circ mod[n]; // циклический буфер, содержащий
// значения несущей
.section/pm interrupts; // обозначение секции таблицы векторов
//прерывания
JUMP start; nop; nop; nop; // 0x0000: Вектор сброса
RTI; nop; nop; nop; // 0x0004: Вектор IRQ2
RTI; nop; nop; nop; // 0x0008: Вектор IRQL1
RTI; nop; nop; nop; // 0x000C: Вектор IRQL0
RTI; nop; nop; nop; // 0x0010: Вектор SPORT0 transmit
RTI; nop; nop; nop; // 0x0014: Вектор SPORT0 receive
RTI; nop; nop; nop; // 0x0018: Вектор IRQE
RTI; nop; nop; nop; // 0x001C: Вектор BDMA
RTI; nop; nop; nop; // 0x0020: Вектор SPORT1 transmit
RTI; nop; nop; nop; // 0x0024: Вектор SPORT1 receive
RTI; nop; nop; nop; // 0x0028: Вектор Timer
RTI; nop; nop; nop; // 0x002C: Вектор Power down
.section/pm program; // обозначение секции кода программ
start: call harm; // вызов функции
nop; // нет операции
.global harm; //объявление функции harm глобальной
// (формирование гармонич. сигнала)
harm: //тело функции
I0=sin; //загрузка указателя с первым адресом sin
L0=length(sin); //синус-циклический массив
m0= 128; //частота несущей 1 кГц
I1=harmony;
L1=0; //harmony-нециклический массив
m1=1; //шаг счетчика
cntr=1024; //счетчик
do harm_loop until ce; //запуск цикла, вызывается подпрограмма
//harm_loop до тех пор, пока не 0
SR1=DM(I0,M0); //из SR1 считывается в память данных (с адресом I0),
// по завершении считывания обновляется значением
// из M0
harm_loop: DM(I1,M1)=SR1;
rts; //возврат из подпрограммы
harm.end: //окончание функции, возврат из подпрограммы
После того как программа будет набрана, нужно сохранить файл с новым заголовком. Для этого в меню «File» выбрать пункт «Save As…», в появившемся окне, в строке «Имя файла», написать название файла и нажать кнопку «Сохранить».
Открыть добавленный файл программы можно двойным щелчком левой кнопки мыши на его заголовке в окне «Project Window». Теперь, когда файлы описания компоновщика (*.LDF файл) и файл с текстом программы добавлены к проекту, можно произвести построение проекта.
