Освоение особенностей разработки и отладки программ для ADSP-21xx. Цели и особенности применения многофункциональных инструкций

Страницы работы

Содержание работы

Лабораторная работа № 3             

ОСВОЕНИЕ ОСОБЕННОСТЕЙ РАЗРАБОТКИ  И ОТЛАДКИ ПРОГРАММ ДЛЯ ADSP-21xx

1. Цель работы

Освоение специфических средств программирования циклов, косвенной адресации массивов, отображения портов на память  и приёмов управления при отладке программы для процессора ADSP-21xx (контрольные точки, связывание порта с файлом данных).

2. Подготовка к работе

2.1. Изучить следующие вопросы:

Директивы ассемблера.

Использование генераторов адресов данных DAG.

Цели и особенности применения многофункциональных инструкций.

Особенности программирования  и работы  цикла в ADSP-21xx.

Приёмы управления VisualDSP++ при отладке программы.

Материалы для освоения указаны в разделе 3.

Контрольные вопросы см. в разделе 7.

2.2. Домашнее задание:

Внести коррективы в программу vectadd.asm – изменить размерность вектора результата и заменить операцию сложения целых чисел  x + y  на другую, согласно таблице  3.1.

Таблица 3.1 – Варианты для бригад

№ бригады

    1

    2

     3

     4

     5

6

Размерность

    7

    8

5

     6

     7

 8

Операция

x - y

y - x

x * y

x - y

y - x

x * y

Проанализировать программу, составить схему алгоритма  и подготовить ожидаемые результаты выполнения  программы. Шестнадцатеричные значения векторов x и y, содержащиеся в файлах  xin.dat  и yin.dat, приведены в таблице  3.2.

Таблица 3.2 – Исходные данные

x

0001

0003

0005

0007

0009

000B

000D

000F

0011

0013

y

000B

000C

000D

000E

000F

0010

0011

0012

0013

0014

3. Материалы к работе

3.1. Система команд ADSP-2101 (Справочные материалы по ADSP-21xx, стр.1)

3.2. Используемая программа vectadd.asm (см. Приложение,   программа к ЛР № 2, 3).

3.3. Учебное пособие “Работа с VisualDSP++”, разделы  10, 11, 12, 13.3. 

3.4. Материал лекций по указанным вопросам.

4. Задание к работе в лаборатории

4.1. Скорректировать исходный файл .asm согласно заданию. Создать исполняемый файл  .dxe и загрузить его.

4.2. Проверить работу циклической программы с использованием контрольной точки.  Результаты сопоставить с ожидаемыми.

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

5. Указания к работе в лаборатории

5.1. В этой работе используется проект VectAdd, полученный в работе №2.  Открыть этот проект командой Project/Open, открыть для редактирования свой ранее отлаженный файл vectadd.asm и cкорректировать его в соответствии с заданием для бригады.

5.2.  Сформировать файл vectadd.dxe командойBuild,  загрузить программу командой  Load .

5.3. Выполняя программу по шагам (команда Step Into), зафиксировать результаты каждой операции от начала программы до конца первого прохода по циклу в таблице  3.1 (аналогично работе № 2).

5.4. Установить контрольную точку в последней инструкции цикла и провести дальнейшую проверку работы цикла с использованием прогонов до контрольной точки (указания в разделе 11). Обратите внимание, что стрелка указывает на ещё невыполненную инструкцию. После выхода из цикла остальные инструкции программы нужно проверить в пошаговом режиме. Для обнаружения момента выхода из цикла удобно воспользоваться контрольной точкой, расположенной в первой инструкции после цикла. Получаемые результаты отобразить в  таблице 3.3.

Таблица 3.3 – Схема оформления протокола экспериментальной проверки программы с циклом

16-ричный адрес выполненной инструкции

Контролируемый регистр  или ячейка памяти

Результат выполнения инструкции

первый проход

последующие проходы цикла

последний проход

Начальный адрес

Адр.точки контроля

Адрес конца цикла

Конечный адрес

Таблица содержит адреса всех инструкций программы, начиная с метки start, и по каждому адресу контролируемый объект(ы) – имя(имена) регистра или ячейки памяти с номером, в который происходит запись по инструкции, находящейся по этому адресу. Заштрихованы недоступные области таблицы. Обратить внимание, что задано было получить n результатов, а число проходов по циклу было уменьшено на единицу.

    Сопоставить  полученные результаты  с ожидавшимися.

5.5. Ячейка z_out имитирует параллельный порт. В неё выводится результат расчёта в конце каждого прохода по циклу. Чтобы увидеть все получаемые результаты вместе,  нужно подключить к ячейке z_out файл с именем out.dat  (указания в  разделе 13.3). Вернуть программу в исходное состояние командой Restart.  Убрать контрольные точки и выполнить программу в режиме прогона (команда Run) от начала до конца. Остановить работу имитатора комадой Halt. Открыть полученный файл out.dat средствами, имеющимися в программе VisualDSP++ (команда File/Open) и в Windows, и продемонстрировать его преподавателю. Зафиксировать результаты в отчёте.

5.6. После завершения работы закрыть проект VectAdd командой Project/Close и закрыть программу VisualDSP++. Папку VectAdd из своей рабочей области удалить.

6. Содержание отчёта

6.1. Цель работы.

6.2. Выполнявшаяся программа на языке ассемблера.

6.3. Результаты проверки работы программы в виде табл. 3.3.

7. Контрольные вопросы

7.1. Расскажите об инструкциях, обеспечивающих работу с массивами данных.

7.2. Что такое косвенная адресация и чем она обеспечена в программе?

7.3. Расскажите о целях и предпочтительных местах использования многофункциональных инструкций.

7.4. Опишите особенности программирования и работы цикла DO в ЦСП.

7.5. Зачем число проходов по циклу CNTR уменьшено на единицу?

7.6. Опишите последовательность операций по проверке и отладке программы с циклом  в VisualDSP++.

7.7. Как выбрать положение контрольной точки при отладке программы с циклом?

7.8. Какие преимущества даёт использование контрольных точек при отладке программы?

7.9. Особенности вывода и отображения на экране результатов работы программы, использованные в этой работе.

7.10. Где и как можно получить результаты работы программы целиком?

7.11. Почему понадобились моделирование ввода/вывода и связывание порта с файлом данных?

См. ПРИЛОЖЕНИЕ к ЛР №2

Похожие материалы

Информация о работе