Чтение онлайн

на главную - закладки

Жанры

Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++

Вальпа Олег Дмитриевич

Шрифт:

L2=0; /*noncircular buffer*/

I6=y_input; /*pointer to y input buffer*/

L6=0;

M0=1; L0=0;

M5=1; L5=0;

CNTR=n-1;

AX0=DM(I2,M0), AY0=PM(I6,M5); /*Get first data*/

DO add_loop UNTIL CE;

AR=AX0+AY0, AX0=DM(I2,M0), AY0=PM(I6,M5);

add_loop: io(z_out)=AR; /*Write output*/

AR=AX0+AY0;

io(z_out)=AR;

IDLE;

Выполним данную

программу в пошаговом режиме. Для этого вначале произведем компиляцию программы, нажав на клавиатуре клавишу F7. В результате программа будет скомпилирована, и отобразится окно, приведенное на рис. 23.8.

Рис. 23.8

Этот же результат можно получить, выполнив команду главного меню Project→Build project или нажав соответствующую ей кнопку на панели инструментов. Из рисунка видно, что стрелка, показывающая очередную выполняемую программу, располагается напротив строки с меткой «reset». Кроме того, справа автоматически открывается окно дизассемблированных команд программы. Выполнять программу в пошаговом режиме можно, нажимая клавишу F11, выполнив команду Debug→Step Into или нажав соответствующую ей кнопку на панели инструментов.

При каждом таком действии будет выполняться очередная строка команд. Результат работы программы можно наблюдать по изменению содержимого памяти и регистров процессора. Окна, отображающие память процессора, вызываются с помощью главного меню «Memory». Для отображения окон с содержимым регистров процессора используется кнопка главного меню «Register». Для отображения регистров удобно воспользоваться командой Register→Custom, которая позволяет выбрать только те регистры, которые необходимо видеть пользователю. При выполнении этой команды откроется окно, изображенное на рис. 23.9.

Рис. 23.9

Выделяя в этом окне с помощью мышки необходимые для контроля регистры и щелкая по кнопке «Add», можно создать набор регистров для отображения на дисплее в одном окне. Кроме того, в строке «Title of window» можно задать название отображаемого окна. Таким образом, можно создать несколько окон для отображения различных групп регистров для контроля их состояния. Создав такое окно, можно продолжать выполнение программы по шагам. При этом в окне регистром будет видно изменение содержимого регистров, которые участвовали в выполнении очередной строки команд программы. Текущие изменения будут выделяться красным цветом. Выполнение программы завершается оператором IDLE, который переводит процессор в режим энергосбережения. Для повторного запуска программы необходимо вновь выполнить команду Project→Build. Перед повторной компиляцией проекта в программу можно вносить собственные изменения с целью получения практики программирования. Можно, например, изменить программу таким образом, чтобы результат сложения массивов записывался не по адресу ввода-вывода, а в память данных. Закрытие проекта производится командой Project→Close.

Глава 24. Работа с VisualDSP++

В этой главе рассматриваются очередные примеры программ, способы настройки симулятора и получение загрузочного файла в среде разработки VisualDSP++.

Рассмотрим еще один пример программы, который демонстрирует работу с последовательным портом и предназначен для освоения работы с симулятором и потоками ввода-вывода.

Откройте в установленном пакете Visual DSP++ каталог с примером проекта программы «Example2», выделите в нем файл проекта «Example2» и нажмите кнопку «Открыть». После этого найдите в открывшемся проекте файл с названием «Sport.asm» и щелкните по нему дважды левой кнопкой мыши. В центре экрана откроется новое окно, позволяющее просматривать и редактировать выбранный файл. Разверните это окно, щелкнув кнопку развертывания окна.

В этой

программе выполняется инициализация последовательных портов SPORT0 и SPORT1 с последующей передачей данных, используя процедуру прерываний.

В обработчике прерываний процессор вначале считывает данные из последовательного порта SPORT1, а затем передает их в этот же порт. Данный обработчик прерываний состоит из следующих строк:

sample: AX0=RX1; /*принять данные в AX0*/

TX1=АХ0; /*передать данные из AX0*/

RTI;

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

Для этого необходимо подключить ко входу и выходу порта файлы, которые будут содержать входные и выходные данные. Выполните команду главного меню: «Setting→Streams2». После этого на дисплее откроется окно «Streams», показанное на рис. 24.1.

Рис. 24.1

Щелкните в открывшемся окне по кнопке «Add» (добавить). Во вновь открывшемся окне «Add New Streams» (рис. 24.2) в группе настроек «Source» выберите группу «File» и, щелкнув по кнопке «Browse» (обзор), найдите, выделите и откройте файл «Serin.dat» с помощью кнопки «Open» (открыть).

Рис. 24.2

После чего выберите в списке «Format» строку «Binary». Остальные настройки данной группы оставьте без изменений. Теперь в группе настроек «Destination» выберите в списке «Device» устройство Sport1 и нажмите кнопку «OK». После этого вновь открывается окно «Streams», в котором будет присутствовать заданная нами настройка.

Далее необходимо подключить выходной файл. Вновь щелкните в окне «Streams» по кнопке «Add». В открывшемся окне «Add New Streams» в группе настроек «Source» переключитесь на группу «Debug target» и выберите в списке «Device» устройство «Sport1». Теперь в группе настроек «Destination» выберите группу «File» и, щелкнув по кнопке «Browse», найдите, выделите и откройте файл «Serout.dat» с помощью кнопки «Save» (сохранить) или задайте это имя для выходного файла. В списке «Format» выберите строку «Binary» и нажмите кнопку «OK».

Теперь в открывшемся окне «Streams» будут присутствовать две записи настроек, показанные на рис. 24.3. Нажмите в окне «Streams» кнопку «OK», и оно закроется.

Рис. 24.3

Перед запуском программы создайте с помощью команды меню Register→Custom окно, в котором будут отображаться регистры AX0, RX1, TX1. Кроме того, откройте еще одно с помощью команды меню Register→Program Control для отображения содержимого регистров управления процессора. Изменение содержимого этих регистров можно будет наблюдать в процессе пошагового выполнения программы. Допускается добавление окон для отображения и других регистров, но помните, что избыточная информация загромождает экран и затрудняет изучение программы.

Теперь можно скомпилировать и запустить программу в пошаговом режиме, с помощью клавиш F7 и F11 соответственно. Кроме того, программу можно запустить в непрерывном режиме, используя команду Debug→Run, или клавишу F5, или соответствующую кнопку на панели инструментов. В результате выполнения программы, данные из входного файла Serin.dat должны без изменений переписаться в выходной файл Serout.dat. После окончания работы программы в окне выходной информации появится сообщение: «Error in reading from stream for Sport 1», которое означает, что отладчик достиг конца входного файла при чтении данных.

Поделиться:
Популярные книги

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Отчий дом. Семейная хроника

Чириков Евгений Николаевич
Проза:
классическая проза
5.00
рейтинг книги
Отчий дом. Семейная хроника

Скандальная свадьба

Данич Дина
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Скандальная свадьба

Путанабус. Трилогия

Старицкий Дмитрий
Фантастика:
боевая фантастика
6.93
рейтинг книги
Путанабус. Трилогия

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Кодекс Крови. Книга ХVI

Борзых М.
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVI

Проданная невеста

Wolf Lita
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Проданная невеста

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

С Д. Том 16

Клеванский Кирилл Сергеевич
16. Сердце дракона
Фантастика:
боевая фантастика
6.94
рейтинг книги
С Д. Том 16

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

От Советского Информбюро - 1941-1945 (Сборник)

Неизвестен 3 Автор
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
От Советского Информбюро - 1941-1945 (Сборник)

Санек 3

Седой Василий
3. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Санек 3

Прометей: повелитель стали

Рави Ивар
3. Прометей
Фантастика:
фэнтези
7.05
рейтинг книги
Прометей: повелитель стали

Отмороженный 14.0

Гарцевич Евгений Александрович
14. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Отмороженный 14.0