Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++
Шрифт:
Выполним данную
Рис. 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» и щелкните по нему дважды левой кнопкой мыши. В центре экрана откроется новое окно, позволяющее просматривать и редактировать выбранный файл. Разверните это окно, щелкнув кнопку развертывания окна.
В этой
В обработчике прерываний процессор вначале считывает данные из последовательного порта SPORT1, а затем передает их в этот же порт. Данный обработчик прерываний состоит из следующих строк:
В рассматриваемой программе организован бесконечный цикл за счет того, что процессор находится в состоянии ожидания до тех пор, пока не будет сгенерировано прерывание от приемника 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», которое означает, что отладчик достиг конца входного файла при чтении данных.